반응형
그냥 듀크입니다. 이번에도 크게 어려운 문제는 아니니 함께 가봅시다.
문제 : https://www.acmicpc.net/problem/9012
코드 :
import sys
ssr = sys.stdin.readline
def func(s):
if s.find('()')== -1:
print('NO')
return
elif s == '()':
print('YES')
return
if len(s)>=3:
func(s.replace('()',''))
n = int(ssr())
for i in range(n):
func(ssr().rstrip())
저는 금방 방법을 떠올려서 하는 바람에 조건을 상당히 많이 달았는데요. 아마 이것보다 다들 효율적인 코드를 짜실 수 있을 겁니다.
저는 일단 replace를 사용해서 () 얘들을 다 없애는 것을 기본적인 틀로 잡았습니다. 일단 없애보고 vps가 아니면 no를 출력하고 () 이 형태가 존재한다면 yes를 출력하는 것으로 정했습니다.
어째 백트래킹 연습을 위해서 재귀 연습을 하다 보니 요즘은 그냥 반복문으로 짜는 게 훨씬 경제적인 경우에도 일단 재귀부터 써놓고 보는 경우가 있는데, 백트래킹 파트를 다 풀고 나면 다시 일반적인 방법으로 넘어가는 연습을 해야 할지도 모르겠네요.
그냥 듀크였습니다.
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ][Python]10828번 풀이 (0) | 2021.12.28 |
---|---|
[BOJ][Python]백준 10816번 풀이 (0) | 2021.12.28 |
[BOJ][Python]백준 2609번 풀이 (0) | 2021.12.25 |
[BOJ][Python]백준 2164번 풀이 (0) | 2021.12.23 |