
이번 문제는 실버 4 괄호이다. 한동안 어려운 실버문제만 보다가 간단한문제를 보니 이전보다 많은게 보인다.
이 문제의 접근은
- string을 하나하나 쪼개서 활용한다.
- 다른방법도 있겠지만 의미있게 stack을 사용한다.
- 임의의 변수를 활용하여 반복문과 조건문을 잘 활용한다.
string은 배열index를 통해 각 자리의 글자를 구할 수 있다.
for(int j = 0; j < input.length(); j++ ) 이렇게 변수.length()를 이용해서 몇번반복해야하는지 string의 길이를 구할 수 있다.
내가 생각한 알고리즘.
우선 '(' 와 ')' 의 개수가 같아야한다. 그리고 '('이거 하나나오면 결국엔 ')'이게 나와야하는데 순서가 중요하다. ')'이게나오려면 무조건 '('이게 수에맞게 혹은 그이상으로 먼저 나와야하는것.
크게 두가지 조건
- '(' 나오면 임의의 0의로 초기화된 정수변수 ++, ')'나오면 변수-- 변수가 0보다 작아지는순간이 있다면 바로 아웃.
- 끝날때 변수의 값이 0이어야함. ( '(' , ')'둘의 개수가 같다는 의미)
반복문 조건문은

위와 같다.
끝~
'🖋️PS' 카테고리의 다른 글
백준 11047 동전 c++ (1) | 2022.10.18 |
---|---|
백준 11399 ATM c++ (0) | 2022.10.13 |
백준 4673 셀프넘버 c++ (1) | 2022.10.11 |
[C++] 백준 11659번 구간합 구하기 4 (0) | 2022.08.15 |
[C++] 백준 17210번 문문문 (0) | 2022.08.15 |