Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

앞날창창이승경 개발 블로그

[백준/python/파이썬] #9012 괄호 본문

백준(BOJ)

[백준/python/파이썬] #9012 괄호

apnalchangchangx2leeseungkyung 2022. 1. 17. 13:56

 

 

9012번: 괄호

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

www.acmicpc.net

문제 설명

스택과 pop 함수를 이용합니다.

 

CODE

 

n = int(input())
for _ in range(n):
    s = input()
    stack = []
    res = 'NO'
    for i in s:
        if i == '(':
            stack.append(i)
        elif i == ')':
            if len(stack) > 0 and stack[-1] == '(':
                stack.pop()
            else:
                stack.append(i)
    if len(stack) == 0:
        res = 'YES'
    print(res)

코드 풀이

- 반복할 횟수를 입력받습니다.

- 반복을 하면서 괄호 문자열을 입력받습니다.

- 스택(list) 한개를 생성합니다.

- 변수(답)를 미리 생성하고 'NO'라고 지정해놓습니다.

- 입력받은 괄호 문자열을 돌면서 '('면 스택에 추가하고

')'면 스택의 마지막 원소가 '('고 스택의 원소 개수가 보다 크면 스택을 pop시켜 '('를 없앱니다.

- 반복을 다 돌고 만약 스택의 크기가 0 이라면 답을 'Yes'로 바꿉니다.

-답을 출력합니다.

 

감사합니다.

Comments