M초의 시간을 들이면 K개의 붕어빵을 만들수 있다.
손님들이 도착하는 시간이 주어질 때,모든 손님들에게 기다리는 시간없이 붕어빵을 제공할 수 있는지 판별하는 문제.
T = int(input()) # 테스트 케이스 개수 T
for test_case in range(1, T+1):
N, M, K = map(int, input().split()) # 손님 수 N, 시간 M, 붕어빵 개수 K
time = list(map(int, input().split())) # 손님이 도착하는 시간
use = 1 # 필요한 붕어빵 개수
check = 'Possible'
time.sort() # 도착하는 시간 정렬
for t in time:
if((t//M)*K < use): # 붕어빵이 부족하면
check = 'Impossible'
use += 1 # 필요 개수 +1
print("#%d %s" %(test_case, check))
[문제풀이]
손님이 도착하는 시간을 우선 먼저 도착하는 순서대로 sort를 사용해 정렬한다.
그 후, 도착하는 시간에 만든 붕어빵의 개수가 필요로 하는 개수보다 많은 지 검사한다.
(t//M)*K < use
손님이 도착하는 시간을 t라 하자.
붕어빵을 만드는 시간이 M이므로, (t//M)번이 손님이 도착할 때까지 돌릴 수 있는 사이클의 수다.
이때 M초마다 K를 만들 수 있으므로, 구한 값에 K를 곱한 수가 손님이 도착하는 시간 내에 만들 수 있는 붕어빵의 개수다.
이게 use보다 크면 붕어빵 판매가 딜레이 없이 가능하고, 작으면 붕어빵이 부족한것!
비교해서 부족할 때 Impossible을 출력하도록 하면 된다.
'코딩테스트 > SWEA' 카테고리의 다른 글
| [Python, 파이썬] SWEA 1215. [S/W 문제해결 기본] 3일차 - 회문1 (0) | 2024.10.16 |
|---|---|
| [Python, 파이썬] SWEA 5215. 햄버거 다이어트 (1) | 2024.10.16 |
| [Python, 파이썬] SWEA 1289. 원재의 메모리 복구하기 (1) | 2024.10.15 |
| [Python, 파이썬] SWEA 2805. 농작물 수확하기 (3) | 2024.10.15 |
| [Python, 파이썬] SWEA 2806. N-Queen (1) | 2024.10.15 |