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 |