https://www.acmicpc.net/problem/30802
N = int(input())
sizes = map(int, input().split())
T, P = map(int, input().split())
cnt = 0
for size in sizes:
if size == 0:
continue
elif size % T == 0:
cnt += size // T
else:
cnt += size // T + 1
print(cnt)
print(N//P, N%P)
오늘 뭔가 머리가 안돌아서 이렇게 풀었다.
N = int(input())
sizes = map(int, input().split())
T, P = map(int, input().split())
cnt = sum((size + T - 1) // T for size in sizes if size > 0)
print(cnt)
print(N//P, N%P)
풀이 1에 내가 좋아하는 list comprehension
을 적용해보고자 했으나, 마땅한 방법이 생각나지 않아 GPT 4o 형님께 여쭤보았다.
(프롬프트: 위 코드의 for문을 list comprehension으로 대체한다면?)
역시 잘 짜주신다.
from math import ceil
N = int(input())
sizes = map(int, input().split())
T, P = map(int, input().split())
cnt = sum([ceil(size/T) for size in sizes])
print(cnt)
print(N//P, N%P)
ceiling 함수를 구현하기 위해 math.ceil()
함수를 사용하였다.
ceil(a/b) == (a+b-1) // b
math
라이브러리를 익혀보자.