백준 9012 파이썬 문제풀이.
2023. 8. 7. 15:52ㆍ코딩테스트
반응형
import sys
def is_balanced(s):
stack = []
for char in s:
if char == '(':
stack.append(char)
elif char == ')':
#stack에 빈값이 없고(True 이며) stack의 끝자리가 '(' 문자인 경우,
if stack and stack[-1] == '(':
#맨 마지막 것을 pop 한다.
stack.pop()
else:
return False
# not stack = True라는 뜻.
return not stack
a = int(sys.stdin.readline())
for _ in range(a):
s = input().strip()
if is_balanced(s):
print('YES')
else:
print('NO')
이렇게 풀었다. 여기서 핵심은 True, False를 구분하는 것.
stack = list('아가므브드드')
print(not stack)
헷갈리면 이렇게 테스트 해보면 된다. not stack. 그러니까 stack이라는 변수에 빈값인가? 라는 의미이고 변수 안에 값이 있으면 False를 뱉고 그렇지 않으면 True를 뱉는다.
끝.
728x90
'코딩테스트' 카테고리의 다른 글
백준 11866 파이썬 문제풀이. (0) | 2023.08.08 |
---|---|
파이썬 queue 모듈 사용하기. 백준 2164 파이썬 문제풀이. (0) | 2023.08.07 |
백준 10773 파이썬 문제풀이 (0) | 2023.08.07 |
백준 2798 파이썬 문제풀이 (0) | 2023.08.07 |
백준 2444 풀기. (0) | 2023.07.04 |