문제
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
문제 풀이
- 손님을 온 순서대로 오름차순 정렬한다.
- 손님이 온 시각까지 만들어진 붕어빵 개수는 (도착시간 // m) * k이다.
- 붕어빵을 만드는 데 소요되는 시간(M)으로 나눈 몫의 횟수만큼 붕어빵을 만들 수 있고, m초에 k개를 만들 수 있으므로, 나눈 몫에 k를 곱한다. 그 후 인당 한 개씩 붕어빵을 구매하므로 (i + 1)값을 빼 주면, 현 시각 붕어빵을 구매하고 남은 총 개수를 구할 수 있다.
- 계산된 붕어빵의 개수는 array[i]초에 1개를 구매하고 난 후의 붕어빵 개수이므로, 빵의 값이 0이아닌 음수일 때 구매할 수 없는 상태로 보고 결과를 impossible로 바꿔준다.
- 형식에 맞게 결과를 출력한다.
코드
t = int(input())
for tc in range(t):
n,m,k = map(int,input().split())
array = list(map(int,input().split()))
array.sort()
result = 'Possible'
for i in range(len(array)):
bread = ((array[i] // m) * k) - (i + 1)
if bread < 0:
result = 'Impossible'
print(f'#{tc + 1}',result)'Algorithm > Greedy' 카테고리의 다른 글
| [Python] 프로그래머스 구명보트 (1) | 2024.07.16 |
|---|---|
| [Python] 백준 1138번 한 줄로 서기 (2) | 2023.06.16 |
| [Python] 백준 16953번 A -> B (0) | 2023.03.24 |
| [Python] 백준 10610번 30 (0) | 2023.03.24 |
| [Python] 백준 1946번 신입사원 (0) | 2023.03.20 |