#include <string>
#include <stack>
using namespace std;
bool solution(string s)
{
stack<char> left;
for(int i = 0; i < s.size(); i++)
{
if(s[i] == '(')
{
left.push(s[i]);
}
else
{
if(left.empty())
{
return false;
}
else
{
left.pop();
}
}
}
if(!left.empty())
{
return false;
}
return true;
}
풀이
1. ( 가 나오면 스택에 저장해준다. 큐여도 상관은 없을듯하다.
2. ) 가 나오면 스택에서 ( 를 하나 없애준다. 다만 스택이 비었는데 ) 가 나오면 괄호가 올바르지 않으므로 바로 불가능 판정이다.
느낀점
lv2가 맞나 싶다.
https://school.programmers.co.kr/learn/courses/30/lessons/12909
'Algorithm > Programmers' 카테고리의 다른 글
[C++] 프로그래머스 숫자의 표현 (0) | 2024.02.16 |
---|---|
[C++] 프로그래머스 [PCCP 기출문제] 2번 / 석유 시추 (0) | 2024.02.16 |
[C++] 프로그래머스 최솟값 만들기 (1) | 2024.02.15 |
[C++] 프로그래머스 JadenCase 문자열 만들기 (0) | 2024.02.15 |
[C++] 프로그래머스 최댓값과 최솟값 (0) | 2024.02.15 |