9012번 - 괄호

의혁·2025년 2월 15일
0

[Algorithm] 알고리즘

목록 보기
39/50

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

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('()', '')는 가장 처음 ()을 찾아서 변경시키고 종료된다.)
  • 다른 사람들의 기발한 풀이법들을 보고 학습하는 것이 얼마나 중요한 것인지 다시 한번 알게 되었다 😁
profile
매일매일 차근차근 나아가보는 개발일기

1개의 댓글

comment-user-thumbnail
2025년 2월 17일

좋은 코드네요. 퍼가요∼🤍

답글 달기