[SWEA] 1860 - 진기의 최고급 붕어빵 / Python / D3

KimYoungWoong·2022년 11월 10일
0
post-thumbnail

🚩문제 주소


📄풀이


손님이 도착하는 시간을 입력 받는데 정렬이 되어 있지 않는 경우도 있으므로 정렬을 해줍니다.

손님의 도착 시간들 중에서 가장 큰 시간까지 반복을 합니다.
손님은 0초에도 도착할 수 있으므로 0초가 아니고 시간 % M이 0 일 때 붕어빵을 K 만큼 증가시킵니다.

만약 현재 시간이 도착시간에서 가장 앞에 있는 시간과 같아 졌을때,

  • 만들어진 붕어빵이 없다면 Impossible을 출력하고 반복을 종료합니다.
  • 있다면 그 시간을 제거해주고 붕어빵을 감소시킵니다.

중간에 멈추지 않고 반복이 종료되었다면 Possible을 출력합니다.



👨‍💻코드


T = int(input())
for tc in range(1, T+1):
  N, M, K = map(int, input().split())
  customer = list(map(int, input().split()))
  customer.sort()

  bread = 0
  flag = True
  max_time = max(customer)
  for i in range(max_time+1):
    if i%M==0 and i!=0:
      bread += K
    if i==customer[0]:
      if bread == 0:
        print(f'#{tc} Impossible')
        flag = False
        break
      else:
        customer.pop(0)
        bread -= 1
  
  if flag:
    print(f'#{tc} Possible')

profile
블로그 이전했습니다!! https://highero.tistory.com

0개의 댓글