해피 코딩!

[백준] 9012번 괄호 본문

알고리즘

[백준] 9012번 괄호

지속가능한 성장을 2021. 1. 6. 02:50
for _ in range(int(input())):
    stck = []
    data = list(map(str, input()))
    break_point = True
    while data:
        head = data.pop(0)
        if head == ')':
            if not stck:
                break_point = False
                break
            else:
                stck.pop(0)
        else:
            stck.append(head)
    if break_point:
        if not stck:
            print('YES')
        else:
            print('NO')
    else:
        print('NO')

문제 요약

해당 문제는 스택을 사용하여 괄호 문자열이 전부 제거가 되었다면 "YES"를 출력

그렇지 않다면 "NO"를 출력하는 문제이다.

본인은 stck이라는 리스트를 스택처럼 사용을 하여 문제를 해결하였습니다.

'('일 때에는 스택에 저장하며 ')'를 받게 된다면 스택에 '('가 있을 시 제거 그렇지 않다면 break_point라는 변수를 False값으로 바꾸며 해당 반복문에서 탈출한 후 'NO'를 출력합니다.

받게 된 데이터를 전부 순회하였다면 스택이 전부 제거가 되었을 경우 "YES"를 출력, 그렇지 않다면 "NO"를 출력하며 마무리합니다.

'알고리즘' 카테고리의 다른 글

[백준] 10816번 숫자카드 2  (0) 2021.01.09
[백준] 17298 오큰수  (0) 2021.01.06
[백준] 1541번 잃어버린 괄호  (0) 2021.01.01
[백준] 2108 통계학  (0) 2020.12.31
[백준] 11399 ATM  (0) 2020.12.31
Comments