SWEA-5102 : [파이썬 S/W 문제해결 기본] 6일차 - 노드의 거리

문제

  • SWEA-5099 : [파이썬 S/W 문제해결 기본] 6일차 - 피자 굽기

풀이

오븐 안에 들어간 피자와 밖에 있는 피자, 그리고 각각의 번호를 모두 queue로 구현하여 돌려주면 된다.

T = int(input())
for test_case in range(1, T + 1):
    oven, pizza = map(int, input().split())
    cheese = list(map(int, input().split()))
    number = [i+1 for i in range(pizza)]

    inoven = cheese[0:oven]
    innumber = number[0:oven]
    leftpizza = cheese[oven:]
    leftnumber = number[oven:]

    while len(inoven) !=1:
        inoven[0] //= 2
        if inoven[0]//2 == 0:
            inoven.pop(0)
            innumber.pop(0)
            if len(leftpizza)>0:
                inoven.append(leftpizza[0])
                leftpizza.pop(0)
                innumber.append(leftnumber[0])
                leftnumber.pop(0)
        else:
            inoven.append(inoven.pop(0))
            innumber.append(innumber.pop(0))

    print('#%d %d' % (test_case, innumber[0]))