본문 바로가기
Problem Solving/BOJ

[BOJ][Python]백준 9012번 풀이

by NoiB 2021. 12. 25.
반응형

그냥 듀크입니다. 이번에도 크게 어려운 문제는 아니니 함께 가봅시다.

 

문제 : https://www.acmicpc.net/problem/9012

 

9012번: 괄호

괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고

www.acmicpc.net

코드 : 

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