<조건 분석>
1. 프로그래머스는 제한 시간 이런게 없어서 조건 생각하기가 어렵다고 생각함.
2. 문자열 갯수가 10만 이하라 그냥 순회만 하면서 체크해도 충~~~분할 것 이라 생각했음.
3. 벡터를 추가해서 push_back() 연산이나 pop_back() 연산을 추가하니 시간초과가 생겼음.
4. 그만큼 빡빡하다는 거였음.
<문제 해결 포인트>
1. 최대한 string을 한번만 순회하되, 새로운 STL 컨테이너를 추가해서 함수 호출 연산을 추가하면 시간초과가 일어남.
2. 여는 괄호를 +1로, 닫는 괄호를 -1로 count 체크를 진행하면 됨.
3. 중간에 음수가 발생하면 닫는 괄호가 많아졌다는 뜻이니 false, 순회가 끝나고 count가 0이 아니면 짝이 안맞는다는 소리니 그것도 false.
#include <bits/stdc++.h>
using namespace std;
bool solution(string s)
{
bool answer = true;
int count = 0;
for (auto& item : s)
{
if (item == '(')
{
count++;
}
else if (item == ')')
{
count--;
}
if (count < 0)
{
answer = false;
break;
}
}
if (count != 0) answer = false;
return answer;
}'PS > 스택, 큐' 카테고리의 다른 글
| 프로그래머스 [C++] 같은 숫자는 싫어 (0) | 2026.05.11 |
|---|---|
| 프로그래머스 [C++] 기능개발 (0) | 2026.05.09 |