전공/백준
1500
yha97
2023. 3. 3. 15:52
날짜 : 2023. 03. 03
사용 언어 : python
문제
코드
import sys
s, k = map(int, sys.stdin.readline().split())
num = [int(s // k)] * k
s %= k
res = 1
idx = 0
while s > 0:
num[idx] += 1
idx += 1
s -= 1
for i in range(len(num)):
res *= num[i]
print(res)
#print(num)
풀이
- 최대곱을 만들기 위해서는 해당 숫자들의 차이를 최소화하면 된다(분산을 최소로 한다)
- 모두 동일한 값들을 만들고(s를 k로 나눈 몫), 나머지를 각각의 수에 분배한다.
- 그리고 그 값들을 모두 곱해주면 끝
알게된 점
-
참고 사이트
-