728x90
반응형
단순 수학 문제이다.
위의 조건을 만족해야 되는데, 수학적으로 확실한 증명은 못하지만
내 생각엔 곱이 최대가 되는 정수의 조합은 [S//K] * K에 각 요소 S%k개에다 1을 더한 것이다.
실제로 이런 식으로 구현하니 통과됐다!
EX) S = 10, K = 3 -> [S//K]*3 = [3]*3 = [3, 3, 3]
S%K = 1 -> [3+1, 3, 3] -> 4*3*3 = 36
아래는 이해를 돕기 위해 풀어쓴 코드이다.
s, k = map(int, input().split())
li = [s//k for _ in range(k)]
for i in range(s%k):
li[i] += 1
res = 1
for n in li:
res *= n
print(res)
그냥 짧게 짠 코드
s, k = map(int, input().split())
print((s//k)**(k-s%k) * (s//k+1)**(s%k))
728x90
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 2003번 수들의 합 2(python) (0) | 2021.02.22 |
---|---|
백준 알고리즘 1735번 분수 합(python) (0) | 2021.02.22 |
백준 알고리즘 1431번 시리얼 번호(python) (0) | 2021.02.22 |
백준 알고리즘 9093번 단어 뒤집기(python) (0) | 2021.02.21 |
백준 알고리즘 11365번 !밀비 급일(python) (0) | 2021.02.21 |