💡 유형을 익히는 것의 중요성을 다시 한번 꺠우쳤다!!

import sys
input = sys.stdin.readline
N = int(input())
for _ in range(N):
ps = input().rstrip()
while '()' in ps:
ps = ps.replace('()', '')
if ps:
print("NO")
else:
print("YES")
- 이번 문제를 보자마자 바로 스택을 활용해야겠다고 생각하였다.
- 그래서 문제를 보면서 풀이법을 생각해보다가 문득 지난 번에, 이런 스택의 짝을 찾는 문제에서 replace()를 사용해서 풀었던 기발한 풀이법이 생각이 났다.
- 풀이법은 이와 같다.
=> input을 ps에 string으로 받아서 ps에 '()'가 포함되지 않을 때까지 반복해서 돌린다.
=> while문 내부에서는 ps = ps.replace('()', '')로 계속 ps값을 갱신하면서 ()을 없애갔다.
( 1. ps.replace('()','') 이렇게만 지정해주면, ps에 변경값이 저장되지 않고 다시 돌아온다.)
(2. ps.replace('()', '')는 가장 처음 ()을 찾아서 변경시키고 종료된다.)
- 다른 사람들의 기발한 풀이법들을 보고 학습하는 것이 얼마나 중요한 것인지 다시 한번 알게 되었다 😁
좋은 코드네요. 퍼가요∼🤍