✅ 문제
✅ 풀이
이 문제는 이전에 풀어본 괄호를 이용한 문제와 굉장히 비슷하다.
👇 괄호 문제 풀이 보기
💡 Point
1. 마침표로 문장 구분 → "."이 찍히면 바로 break
2. 열림 괄호를 stack에 담고, 닫힘 괄호가 들어오면 stack에 담긴 열림 괄호를 꺼낸다.
3. stack에서 꺼낼 괄호가 없거나, 꺼낸 열림괄호가 짝이 맞지 않으면 no 출력
→ 짝이 맞는지 확인하기 위해 딕셔너리 이용! (key-value로 짝을 맞춰놓으니 편함)
나의 코드
pair = {')' : '(', ']' : '['}
while True:
sentence = input()
if sentence == ".": break
stack = []
result = True
for char in sentence:
if char in '([':
stack.append(char)
elif char in ')]':
if len(stack)!=0 and stack[-1] == pair[char]:
stack.pop()
else:
result = False
break
if not stack and result:
print('yes')
else:
print('no')
'++ > 자료구조&알고리즘' 카테고리의 다른 글
[leetcode] 543. Diameter of Binary Tree (0) | 2024.01.12 |
---|---|
[baekjoon] 2493. 탑 (1) | 2024.01.09 |
[baekjoon] 15903. 카드 합체 놀이 (0) | 2024.01.09 |
[baekjoon] 2002. 추월 (1) | 2024.01.09 |
[baekjoon] 5397. 키 로거 (0) | 2024.01.08 |