알고리즘 공부

백준 실버4 9012번(자바)

Hosae905 2023. 9. 3. 20:19

백준 9012번 문제는 스택 자료구조를 묻는 대표적인 괄호 문제이다.

 

문제


 

 

입력과 출력


 

풀이


 

먼저 테스트 케이스로 들어오는 정수를 받아주고 해당 값 만큼 반복문을 돌려서 괄호를 받아준다.

check() 메서드를 통해 결과값을 StringBuilder에 추가하여 마지막으로 출력해준다.

 

 

check() 메서드를 통해서 반복문을 돌리는데 먼저 입력으로 받은 test 문자열을 charAt을 활용하여 i 번째 문자를 뽑아준다.

그 후 뽑힌 i 번째 문자가 '(' 면 스택에 push()하고 해당 괄호가 아니면 pop()을 실행한다.

만약 '(' 데이터가 하나 들어오고 그 다음 ')' 데이터가 두 개 들어 온다면 처음 닫는 괄호 데이터가 들어왔을 때 스택을 pop() 해주기 때문에 스택은 비어있는 상태가 되고 다시 ')' 데이터가 들어오면 이미 스택은 비어있는 상태이기 때문에 "NO"를 반환해준다.

마지막으로 반복문이 끝난 경우 스택이 비어있는지 확인하여 결과값을 반환해준다.