hikenny 2023. 12. 16. 16:25

 

들어가기 전에 queue 이용해서 어떻게 구현하나를 미리 생각해놓아서 쉽게 풀 수 있었다..

무난무난한 큐 문제라고 생각

from collections import deque

for t in range(int(input())):
    n, pizza_number = map(int, input().split())
    cheeze = list(map(int, input().split()))

    q = deque([i for i in range(n)])
    out_list = list()
    count = pizza_number - n
    while q:
        k = q.popleft()
        cheeze[k] //= 2

        if cheeze[k] == 0:
            out_list.append(k)
            count += 1
            new_pizza = 2*n + count - pizza_number - 1

            if new_pizza + 1 <= pizza_number:
                q.append(new_pizza)
            continue
        
        q.append(k)

    print(f"#{t+1} {out_list[-1]+1}")