BOJ/백준-9012-python

cosmos·2021년 1월 6일
4
post-thumbnail
post-custom-banner

문제📖



문제의 조건은

  • ( 와 ) 의 갯수가 같으면 YES 아니면 NO를 출력
  • ( 와 ) 가 괄호 튜플형태가되어 닫혀야함 -> )( 불가능

풀이🙏

처음에 위 문제를 접했을 때,
괄호의 갯수 맞추기만 생각하고 2번째 조건을 생각하지 못한채로 풀어서 실패하였다....
개발자는 데이터/문제를 받았을 때, 그에 대한 사항을 정확히 인지하고 준비해야하므로 좀 더 차분해지고 집중해야할 필요가 있을것같다.😭

위 문제는 파이썬 내장함수인 remove를 사용하면 쉽게 구현할 수 있다.
참고로 remove를 사용할 때,삭제할 요소가 중복된다면
리스트의 왼쪽에서 오른쪽요소로 왼쪽에 있는걸 먼저 삭제한다.

코드💻

수정 전 코드

# boj, 9012 : 괄호, Python3
T = int(input())
ps = []
result = 0

for _ in range(T):
    ps.append(input().split())

for i in range(len(ps)):
    for j in range(len(ps[i])):
        result += ps[i][j].count("(")
        result -= ps[i][j].count(")")
        if result == 0:
            print('YES')
        else:
            print('NO')
        result = 0

수정 후 코드

T = int(input())

for i in range(T):
    ps = list(input())
    
    while len(ps) != 0:
        if ps[0] == ')':
            print('NO')
            break
        else:
            if ')' in ps:
                ps.remove(')')
                ps.remove('(')
            else:
                print("NO")
                break
    if len(ps)==0:
        print("YES")

결과😇

수정 전 결과

수정 후 결과

출처📝

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

풀코드

github

post-custom-banner

0개의 댓글