어흥
[프로그래머스] 올바른 괄호 (C++) 본문
728x90
반응형
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/12909
1. 주의할 점
- 스택을 이용해서 해결한다
- "((("와 같은 문자열을 처리할 수 있는 방법을 찾는다
2. 구현
- 스택을 사용하며, 현재 문자가 '('가라면 스택에 추가한다
- 현재 문자가 ')'라면 2가지 경우로 나눈다
- 첫째, 스택이 비어있다면 false를 반환한다
- 둘째, 스택이 비어있지 않다면 스택의 원소 1개를 pop 한다
- 문자열 전체를 조회했다면 이제 스택이 비어있는지 확인해서 괄호가 바르게 짝지었는지 확인한다
#include <string>
#include <iostream>
#include <stack>
using namespace std;
bool solution(string str)
{
stack<char> s;
for(int i=0;i<str.size();i++){
char c = str[i];
if(c == '(') s.push(c);
// ')'
else{
if(s.empty()) return false;
s.pop();
}
}
return !s.empty() ? false : true;
}
728x90
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 연속 부분 수열 합의 개수 (C++) (0) | 2023.08.27 |
---|---|
[프로그래머스] 부대복귀 (C++) (0) | 2023.08.26 |
[프로그래머스] 디펜스 게임 (C++) (0) | 2023.08.07 |
[프로그래머스] 테이블 해시 함수(C++) (0) | 2023.08.07 |
[프로그래머스] 괄호 변환 (Java) (0) | 2022.04.15 |
Comments