Post
1860. 진기의 최고급 붕어빵 (SWEA) | Gihun Son

1860. 진기의 최고급 붕어빵 (SWEA)

※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.

출처:

SW Expert Academy

나의 풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
T = int(input())
for test_case in range(1, T + 1):
    N,M,K=map(int,input().split())
    N_list=list(map(int,input().split()))
    N_list.sort()
    i=0
    b_num=0
    while i<len(N_list):
        time=N_list[i]
        cnt=time//M
        b_num=cnt*K-(i+1)
        if b_num<0:
            print(f'#{test_case} Impossible')
            break
        i+=1
    else:
        print(f'#{test_case} Possible')
  • 손님이 도착하는 시간들의 list를 정렬하고, 해당 시간에 만들어지는 붕어빵 수를 유지한다.
  • i번째 손님이 오면 붕어빵의 수는 i+1만큼 없어지는 것이고, 없어졌을 때의 붕어빵 수가 0이상이어야 한다.
  • 따라서 0이상이 안될 때 impossible하다.
This post is licensed under CC BY 4.0 by the author.