++/자료구조&알고리즘

[baekjoon] 4949. 균형잡힌 세상

writtenbyrla 2024. 1. 9. 19:51

✅ 문제

 

 


✅ 풀이

이 문제는 이전에 풀어본 괄호를 이용한 문제와 굉장히 비슷하다.

 

👇 괄호 문제 풀이 보기

 

💡 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