[프로그래머스] 올바른 괄호
Programmers - [스택/큐] 올바른 괄호
사용 언어 - C++
소요 시간 - 7분
정답 여부 - O
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12909
문제 요약
- 괄호가 무작위로 들어있는 배열이 주어짐
- 열리고 닫히는 순서가 올바른 지 확인
- 올바르다면 true, 아니라면 false return
최종 코드
#include<string>
#include <iostream>
#include <stack>
using namespace std;
bool solution(string s)
{
stack<char> st;
for(const char& c : s)
{
if(c == '(')
{
st.push(c);
}
else
{
if(st.empty())
return false;
st.pop();
}
}
return st.empty();
}
트러블 슈팅
- 이 문제가 스택 카테고리에 해당하는 지를 알게 되었다. 제출 했을 때도 다 맞게 나오긴 했으나, 스택 문제라는 것을 알고 다시 풀어 보았다.
- 별로 트러블 슈팅이라고 할 만한 것은 아니지만…
- 아래 코드는 스택인 줄 모르고 풀었을 때 제출했던 답이다.
#include<string>
#include <iostream>
#include <stack>
using namespace std;
bool solution(string s)
{
int count = 0;
for(const char& c : s)
{
if(c == '(')
count++;
else if(c == ')')
count--;
if(count < 0)
return false;
}
return count == 0 ? true : false;
}
문제 풀이 후 소감
- 사실 월요일이라 조금 쉬운 문제를 풀어보았다. 취준생(백수)에게 왜 월요병이 있는거지..?다음엔 Lv.1이
랑 Lv.2를 하나씩 풀던가 해야겠다. 문제는 7분만에 풀어놓고 블로그 정리만 30분 하는 것 같다. 조금 더 해보자. 요즘 조금 느슨해진 감이 있는데, 내일은 Lv.2로 기강을 잡아야겠다.