https://github.com/Dev-Guccin
Guccin
https://github.com/Dev-Guccin
전체 방문자
오늘
어제
  • 분류 전체보기 (172)
    • 알고리즘 (140)
    • 삽질방지 (13)
    • SystemHacking (1)
    • 일상 (4)
    • 개발 (8)
    • 스프링 부트 REST API 개발일지 (5)
    • JPA (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 그래프
  • MST
  • 다이나믹프로그래밍
  • 프로그래머스
  • 유니온 파인드
  • 이분 탐색
  • heapq
  • 재귀함수
  • 유클리드호제법
  • DP
  • 백준
  • 이분탐색
  • 백트래킹
  • Python
  • 12015
  • BFS
  • 최대공약수
  • 큐
  • 최단경로
  • 다이나믹 프로그래밍
  • 그리디
  • 파이썬
  • 다익스트라
  • python3
  • LIS
  • 스택
  • 재귀
  • DFS
  • counter
  • 최소힙

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
https://github.com/Dev-Guccin

Guccin

알고리즘

백준 4949 풀이 (균형잡힌 세상, 스택)

2021. 3. 4. 20:55

이런 소괄호 중괄호 맞게 찾기는 스택으로 풀어야한다. 옛날에 자료구조 공부할때 교수님이 스택으로 문제를 푸셨었다. 

만약에 괄호 하나만 확인하는 거면 굳이 스택으로 풀 필요가 없지만 이번 문제는 소괄호와 대괄호로 2개이기 때문에 스택으로 풀어봤다.

 

1. 만약 (, [ 이라면 스택에 쌓는다.

2. ), ] 가 나오면 스택에 top에 쌓인게 소괄호인지 중괄호인지 비교하여 같으면 스택에서 제거한다.

3. 만약 ), ] 가 먼저 나오면 잘못 입력된 것이기 때문에 바로 종료시킨다.

 

대강 이러한 느낌으로 코딩을 짜면 코드는 아래와 같다. 좀더 효율적으로 짤 수 있었을거 같은데 내가 좀 무식하게 코딩하다 보니 저렇게 돼버렸다.ㅎㅎ

while True:
    tmp = input()
    if tmp == ".":
        break
    stack = []
    for i in tmp:
        if i == "(":
            stack.append("(")
        elif i == ")":
            if len(stack) == 0:
                stack.append("wtf")
                break
            if stack[-1] == "(":
                stack.pop()
            else:
                break
        elif i == "[":
            stack.append("[")
        elif i == "]":
            if len(stack) == 0:
                stack.append("wtf")
                break
            if stack[-1] == "[":
                stack.pop()
            else:
                break
        else:
            continue
    if len(stack) == 0:
        print("yes")
    else:
        print("no")
        

'알고리즘' 카테고리의 다른 글

백준 17298 풀이 (오큰수, 스택)  (0) 2021.03.08
백준 1874 풀이 (스택 수열, 스택)  (0) 2021.03.04
백준 10773 풀이 (sys.stdin.readline())  (0) 2021.03.04
백준 10828 풀이 (스택, sys.stdin.readline, 입력속도 높이기)  (0) 2021.03.04
백준 2004 풀이 (조합 0의 개수)  (0) 2021.03.03
    '알고리즘' 카테고리의 다른 글
    • 백준 17298 풀이 (오큰수, 스택)
    • 백준 1874 풀이 (스택 수열, 스택)
    • 백준 10773 풀이 (sys.stdin.readline())
    • 백준 10828 풀이 (스택, sys.stdin.readline, 입력속도 높이기)
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin

    티스토리툴바