DOTY
1) 백준 4949 - 균형잡힌 세상 본문
728x90
반응형
4949번: 균형잡힌 세상
하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다
www.acmicpc.net
작은 실수 하나 때문에 고민한 문제
방법은 여는 괄호는 스택에 넣고 닫는 괄호는 스택 top과 비교하여 괄호가 일치하면 pop 다르면 break.
#include <bits/stdc++.h>
using namespace std;
int main(void) {
stack<char> cover;
while(1) {
bool check = false;
while(!cover.empty()) {
cover.pop();
}
string str;
getline(cin, str);
if(str == ".") {
break;
}
for(int i = 0; i < str.length(); i++) {
if(str[i] == '(' || str[i] == '[') {
cover.push(str[i]);
}
else if(str[i] == ')') {
if(!cover.empty() && cover.top() == '(') {
cover.pop();
}
else if(cover.empty() || cover.top() != '(') {
check = true;
break;
}
}
else if(str[i] == ']') {
if(!cover.empty() && cover.top() == '[') {
cover.pop();
}
else if(cover.empty() || cover.top() != '[') {
check = true;
break;
}
}
}
if(cover.empty() && !check) {
cout << "yes" << endl;
}
else {
cout << "no" << endl;
}
}
return 0;
}
처음엔 while대신에 if를 쓰는 바보같은 짓을 했다.
두번짼 닫는 괄호가 없는 입력을 받았을 때 후처리를 안해줬다.
많이 어려운 문제는 아닌 것 처럼 보였는데....
다시 공부 시작하려니까 머리가 굳었나보다..ㅜ
728x90
반응형
'Algorithm > Data Structure' 카테고리의 다른 글
6) LeetCode - Majority Element (0) | 2024.09.03 |
---|---|
5) LeetCode - Remove Element (0) | 2024.09.02 |
4) LeetCode - Merge Sorted Array (0) | 2024.05.29 |
3) 프로그래머스 Lv2 - 두 큐 합 같게 만들기 (0) | 2023.03.22 |
2) 백준 1874 - 스택 수열 (0) | 2023.01.14 |
Comments