백준_20001

정소담·2023년 1월 29일
0

BOJ Short Review

목록 보기
21/44
post-thumbnail

20001번 고무오리 디버깅

문제를 입력하면 문제가 쌓이고 고무오리를 입력하면 문제 하나를 해결한다.
만약 문제가 없는데 고무오리를 입력할 경우 문제가 2개가 쌓이는데
고무오리 디버깅이 종료되었을 때 문제가 남아있지 않으면 고무오리야 사랑해를 출력하고 문제가 남으면 힝구를 출력하는 문제.

from collections import deque
# 먼저 들어온 문제를 먼저 해결하는 큐를 구현하기 위해 데크를 사용해 보았다.
start = input() # 고무오리 디버깅 시작
question = deque() # 문제를 쌓아줄 공간

while 1:
    n = input() # 문제 or 고무오리 입력
    if n == '문제': # 문제가 입력 되었다면
        question.append(n) # 문제를 쌓는다.
    elif n == '고무오리 디버깅 끝': # 고무오리 디버깅 끝이 입력되었을 때
        if len(question) > 0:
            print('힝구')
            break
# 문제를 쌓는 공간의 길이에 따라 힝구 혹은 고무오리야 사랑해를 출력하고 break
        else: 
            print('고무오리야 사랑해')
            break
    else: # 고무오리가 입력되었을 때
        if len(question) == 0: # 공간이 비어있다면
            question.append(n) # 문제를 두번 쌓는다.
            question.append(n)
        else: # 문제가 쌓여있다면 첫번째에 있는 문제를 해결해줬다.
            question.popleft()

큐를 구현하지 않고 카운트를 해서 +1, -1, +2 를 해주는 식으로 하거나
문제가 선입선출이나 후입선출과는 상관이 없어서 그냥 리스트로 풀어도
무관하지만 CS 공부를 병행하면서 하는김에 활용을 한번 해보고자 했다.

profile
Hi ! I'm newbie :)

0개의 댓글