본문 바로가기
🖋️PS

백준 9012 괄호 c++

by 덩크냥 2022. 10. 12.

이번 문제는 실버 4 괄호이다. 한동안 어려운 실버문제만 보다가 간단한문제를 보니 이전보다 많은게 보인다.

이 문제의 접근은

  1. string을 하나하나 쪼개서 활용한다.
  2. 다른방법도 있겠지만 의미있게 stack을 사용한다.
  3. 임의의 변수를 활용하여 반복문과 조건문을 잘 활용한다.

string은 배열index를 통해 각 자리의 글자를 구할 수 있다.

for(int j = 0; j < input.length(); j++ ) 이렇게 변수.length()를 이용해서 몇번반복해야하는지 string의 길이를 구할 수 있다.

내가 생각한 알고리즘.

우선 '(' 와 ')' 의 개수가 같아야한다. 그리고 '('이거 하나나오면 결국엔 ')'이게 나와야하는데 순서가 중요하다. ')'이게나오려면 무조건 '('이게 수에맞게 혹은 그이상으로 먼저 나와야하는것.

크게 두가지 조건

  1. '(' 나오면 임의의 0의로 초기화된 정수변수 ++, ')'나오면 변수-- 변수가 0보다 작아지는순간이 있다면 바로 아웃.
  2. 끝날때 변수의 값이 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