[백준] 4949번 균형잡힌 세상 (Python)

2021. 3. 14. 21:49·알고리즘/백준
728x90
반응형

문제

www.acmicpc.net/problem/4949

 

4949번: 균형잡힌 세상

하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마

www.acmicpc.net

 

코드

while True:
    s = input()
    
    if s == '.':
        break
    stack = []
    answer = True

    for i in s:
        
        if i =='(' or i == '[':
            stack.append(i)
            
        elif i == ')':
            if len(stack) == 0:
                answer = False
                break
            if stack[-1] == '(':       
                stack.pop()
            else:
                answer=False
                break
        elif i ==']':
            if len(stack) == 0:
                answer = False
                break
            if stack[-1] == '[':
                stack.pop()
            else:
                answer = False
                break
    
    
    if answer and not stack:
        print("yes")
    else:
        print("no")

 

코드설명

입력값 '.' 이 들어올때까지 무한루프를 돈다.

 

'(' 또는 '[' 괄호가 들어오면 stack에 넣어주고

 

')' 들어왔을때는 스택을 검사해 비어있다면 false를 주고 break문으로 빠져나간다. 만약 비어 있지 않다면 stack에 가장 위에 값을 검사해 괄호 짝이 맞다면 pop을 해주고 괄호 짝이 안맞다면 false를 주고 break문으로 빠져나간다.

 

']' 들어왔을때는 스택을 검사해 비어있다면 false를 주고 break문으로 빠져나간다. 만약 비어 있지 않다면 stack에 가장 위에 값을 검사해 괄호 짝이 맞다면 pop을 해주고 괄호 짝이 안맞다면  false를 주고 break문으로 빠져나간다.

 

for문을 다 돌고 True 이면서 stack 안에 값이 비어있다면 괄호 짝이 맞는것이기 때문에 YES를 출력한다.

false라면 NO를 출력한다.

 

반응형
저작자표시 (새창열림)

'알고리즘 > 백준' 카테고리의 다른 글

[백준] 2108번 통계학 (Python)  (0) 2021.03.15
[백준] 1260번 DFS와 BFS (Python)  (0) 2021.03.14
[백준] 18258번 큐 2 (Python)  (0) 2021.03.13
[백준] 9012번 괄호 (Python)  (1) 2021.03.13
[백준] 10828번 스택 (Python)  (0) 2021.03.13
'알고리즘/백준' 카테고리의 다른 글
  • [백준] 2108번 통계학 (Python)
  • [백준] 1260번 DFS와 BFS (Python)
  • [백준] 18258번 큐 2 (Python)
  • [백준] 9012번 괄호 (Python)
wookcode
wookcode
공부한 내용들을 정리하고 기록하는 블로그입니다.
    반응형
  • wookcode
    wookcode
    wookcode
  • 전체
    오늘
    어제
    • 카테고리 (196)
      • study (1)
        • 아파치 카프카 애플리케이션 프로그래밍 with 자.. (0)
        • 인프런 (1)
      • Live Study (15)
      • Programming (14)
        • Java (8)
        • Python (1)
        • Springboot (5)
        • MSA (0)
      • 알고리즘 (117)
        • 백준 (58)
        • 프로그래머스 (59)
      • 에러로그 (5)
      • 항해99 (23)
      • 면접 (1)
      • 프로젝트 (1)
      • CS (19)
        • 네트워크 (2)
        • 운영체제 (2)
        • 데이터베이스 (2)
        • 컴퓨터구조 (1)
        • Java (8)
        • Spring (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    항해99
    java
    프로그래머스
    해결
    spring
    김영한
    jpa
    괄호
    미니프로젝트
    카카오코딩테스트
    SpringBoot
    정리
    코딩테스트
    그리디
    후기
    조합
    브루트포스
    실전프로젝트
    파이썬
    카카오인턴
    orm
    스파르타코딩클럽
    SFlash
    항해마켓
    회고
    백준
    에러
    알고리즘
    버그
    인프런
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
wookcode
[백준] 4949번 균형잡힌 세상 (Python)
상단으로

티스토리툴바