[프로그래머스] 올바른 괄호



Programmers - [스택/큐] 올바른 괄호




사용 언어 - C++

소요 시간 - 7분

정답 여부 - O




문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12909



문제 요약

  1. 괄호가 무작위로 들어있는 배열이 주어짐
  2. 열리고 닫히는 순서가 올바른 지 확인
  3. 올바르다면 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로 기강을 잡아야겠다.