반응형
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/12909
문제 풀이
스택으로 풀이한다.
왼쪽 괄호를 push, 오른쪽 괄호를 pop이라고 생각하면 된다.
만약 왼쪽 괄호가 열리지도 않았는데 오른쪽 괄호가 닫힌다면 스택이 비어있는데 pop하는 것이므로 false를 리턴해준다.
for문이 끝났을 때는 스택이 비어있어야 왼쪽 괄호와 오른쪽 괄호의 수가 일치하는 것이므로 비어있다면 return true, 아니라면 false를 리턴한다.
소스 코드
#include <bits/stdc++.h>
using namespace std;
bool solution(string s)
{
bool answer = true;
stack<char> st;
for(int i=0; i<s.size(); i++){
if(st.empty() && s[i] == ')') return false;
else if(s[i] == '('){
st.push('(');
}
else st.pop();
}
if(!st.empty()) return false;
return answer;
}
반응형
'Programming Solve > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 단어 변환 / C++ (0) | 2022.02.19 |
---|---|
프로그래머스 - 숫자의 표현 / C++ (0) | 2022.02.17 |
프로그래머스 - 전화번호 목록 / C++ (0) | 2022.02.16 |
프로그래머스 - 네트워크 / C++ (0) | 2022.02.15 |
프로그래머스 - 타겟 넘버 / C++ (0) | 2022.02.13 |