기록하고 까먹지 말기

1500 본문

전공/백준

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로 나눈 몫), 나머지를 각각의 수에 분배한다.

- 그리고 그 값들을 모두 곱해주면 끝

 

 

알게된 점

 

 

참고 사이트

 

'전공 > 백준' 카테고리의 다른 글

3085  (0) 2023.03.06
10819  (0) 2023.03.06
14502  (0) 2023.03.02
1182  (0) 2023.03.01
5014  (0) 2023.02.28