본문 바로가기
Algorithm Problem Solving/BaekJoon

[BaekJoon] 백준 20001 고무오리 디버깅 (Python / 파이썬)

by ʚ⇜❅🎕̈❄⇝ɞ 2021. 8. 28.
728x90
반응형

BaekJoon 백준 20001 고무 오리 디버깅 문제는 수진이를 위해 민우가 준비한 고무 오리는 신비한 능력이 존재하는데, 최근에 풀던 백준 문제를 해결해주는 능력이다. 고무 오리 디버깅이 끝날 때, 주어진 문제에 대한 해결 여부를 구하는 문제이다. 난이도는 Bronze 1이다.

 

BaekJoon 20001 고무 오리 디버깅 문제 정보

출처

- https://www.acmicpc.net/problem/20001

알고리즘 분류

- 자료구조, 스택(stack), 구현

난이도

- 브론즈 1 / Bronze 1

 

고무 오리 디버깅 문제 요약

  • 민우가 준비한 고무 오리는 신비한 능력이 존재하는데, 최근에 풀던 백준 문제를 해결해주는 능력이다. 신비한 고무 오리와 함께 수진이의 백준 풀이를 도와주자!
  • 고무 오리의 사용법은 다음과 같다.
    • "고무오리 디버깅 시작"이라고 외친다
    • 문제들을 풀기 시작한다
    • 고무 오리를 받으면 최근 풀던 문제를 해결한다
    • "고무오리 디버깅 끝"이라고 외치면 문제풀이를 종료한다.
  • 하지만 고무 오리에는 치명적인 문제가 있는데, 풀 문제가 없을 때 사용한다면 고무 오리는 체벌로 두 문제를 추가한다는 점이다.
  • 고무 오리 디버깅이 끝날 때, 주어진 문제를 수진이가 해결하였는지 여부에 따라 남은 문제없이 모든 문제를 해결하였으면 "고무오리야 사랑해"을 출력하고 하나라도 문제가 남았다면 "힝구"를 출력한다.

 

문제 풀이 과정

  1. 고무 오리 디버깅 끝을 입력받기 전까지 계속 입력받는다.
  2. 문제를 입력받으면 스택에 추가하고, 고무 오리를 입력받으면 문제를 스택에서 pop 한다.
  3. 고무 오리를 입력받았는데 스택에 문제가 없다면, 문제를 2개 추가한다.
  4. 입력이 끝났을 때, 스택에 문제가 남아있다면 "힝구"를 출력하고,
  5. 스택이 비어있다면 "고무오리야 사랑해"를 출력한다.

 

코드 및 설명
state = input()
stack = []
while state != '고무오리 디버깅 끝':
    if state == '문제':
        stack.append(state)
    elif state == '고무오리':
        # 문제가 있으면 풀기
        if stack:
            stack.pop()
        # 문제가 없으면 2문제 추가
        else:
            stack.append('문제')
            stack.append('문제')
    print(stack)
    state = input()

# 문제 남았으면
if stack:
    print("힝구")
else:
    print("고무오리야 사랑해")

BaekJoon 백준 20001 고무 오리 디버깅 문제를 파이썬 python으로 풀어보았다. stack 스택 자료구조 활용 문제로, 난이도는 Bronze 브론즈 1이다. 

728x90
반응형

댓글