Python이기에 간단하게 작성 해 볼 수 있는 코드를 쓴 것 같은 느낌이 든다..ㅎㅎ

 

처음 든 생각은 단순하게 괄호 '('와 ')'의 개수 비교였으나 순서도 모두 맞아야 한다는 느낌이 들었고 역시나 테스트 케이스에도 그 점이 인지되어 있었다.

 

예전에 programmers 카카오 lv1 문제인가에서 (아마 id 생성 관련해서 7단계로 나누어서 해결하는 문제였던 것 같다.) best 풀이 중에 while로 탐색 및 반복하는 풀이가 기억에 강하게 남았었는데, 문득 이 방법이 생각나서 적용해보았다.

 

이를 활용하면 나중에 올바른 괄호 쌍의 개수도 쉽게 구할 수 있다!

 

import sys
input = sys.stdin.readline    # 시간 초과 error를 해결하기 위한 input함수 재정의

num = int(input())    # 테스트 케이스 개수를 입력
for _ in range(num):    # 테스트 케이스 개수만큼 반복
    sentence = input().strip()    # 괄호 문자열을 입력받고 '\n'문자 제거
    while '()' in sentence:    # 괄호쌍이 문자에 존재하면 계속 반복
        sentence = sentence.replace('()', '')    # 괄호쌍을 없애버림
    print('YES') if sentence == '' else print('NO')    # 괄호쌍이 순서에 맞게 존재했다면 모두 제거되고 그렇지 않다면 남음

'Algorithm Test > BaekJoon' 카테고리의 다른 글

BaekJoon 10845 - 큐 (Python)  (0) 2022.02.28
BaekJoon 1406 - 에디터 (Python)  (0) 2022.02.25
BaekJoon 1847 - 스택 수열  (0) 2022.02.24
BaekJoon 9093 - 단어 뒤집기  (0) 2022.02.22
BaekJoon 10828 - 스택  (0) 2022.02.21

+ Recent posts