Algorithm/SW Expert Academy

[Python] 5099. 피자굽기

느낌표 공장장 2021. 9. 23. 23:07
tc = int(input())

for idx in range(1, tc+1):
    n, m = map(int, input().split())        # 화덕의 크기 n, 피자의 개수 m
    pizza = list(map(int, input().split())) # 만들 피자 가져오기

    # 인덱스 같이 넣어줌 ex) [[7, 1], [2, 2], [6, 3], [5, 4] [3, 5]]
    pizza_info = [[pizza[i], i+1] for i in range(m)]

    fire = pizza_info[:n]   # 화덕에 먼저 들어간 피자
    pizza = pizza_info[n:]  # 화덕에 아직 못들어간 피자

    # 화덕에서 피자가 없어질때까지 반복
    while fire:
        p, p_i = fire.pop(0)            # 확인할 피자 pop

        # 줄어든 치즈 양 계산하여 치즈 다 안녹았으면 화덕에 다시 넣기
        if p//2:
            fire.append([p//2, p_i])
        # 다 녹았으면 새로운 피자 가져와서 화덕에 넣기
        elif p//2 == 0 and pizza:
            fire.append(pizza.pop(0))

    # 마지막으로 확인한 피자의 번호 출력
    print('#{} {}'.format(idx, p_i))

'Algorithm > SW Expert Academy' 카테고리의 다른 글

[Python] 5105. 미로의 거리  (0) 2021.09.23
[Python] 5102. 노드의 거리  (0) 2021.09.23
[Python] 1226. 미로1  (0) 2021.09.23
[Python] 1225. 암호생성기  (0) 2021.09.23
[Python] 4881. 배열 최소합  (0) 2021.09.21