코드
def check(s):
stack = []
for i in s:
if i == "(":
stack.append(i)
elif i == ")":
if not stack:
return 'NO'
else: # '('수 만큼 ')'이 입력되면 스택은 비어지게 된다
stack.pop()
# 제대로 닫힌 괄호인지 확인하는 if문
if stack:
return 'NO'
else:
return 'YES'
n = int(input())
# n번 문자열 입력받기
for _ in range (n):
str = input()
# 함수 호출 및 결과 출력
result = check(str)
print(result)
`def`를 사용하여 `check`에 ‘s’ 문자열을 검사하는 함수를 만들어놓음
- 맨 처음에 ‘)’가 나오는 경우는 무조건 틀리는 경우기 때문에 바로 ‘NO’를 출력하게끔 만듬
- 괄호가 제대로 닫힌 문자열이 입력되면 `stack.pop()`을 써서 스택을 비움으로 만들고, `if stack:`을 사용하여 만약 스택이 비어있다면 제대로 닫힌 괄호기 때문에 ‘YES’를 출력하고 스택이 비어있지 않다면 닫혀 있지 않으 괄호이기 때문에 ‘NO’를 출력하도록 만듬
'BeakJoon > Python' 카테고리의 다른 글
[Python] 백준 #1929번: 소수 구하기 (1) | 2023.12.05 |
---|---|
[Python] 백준 #1550번: 16진수 (0) | 2023.12.05 |
[Python] 백준 #1157번: 단어 공부 (0) | 2023.12.02 |
[Python] 백준 #1978번: 소수 찾기 (1) | 2023.12.02 |
[Python] 백준 #5622번: 다이얼 (0) | 2023.12.01 |