[실버 2] 백준 1500 - 최대 곱 (파이썬)
글 작성자: pental
https://www.acmicpc.net/problem/1500
풀이
곱의 최댓값을 구하려면, 수들을 가능한 한 고르게 나누는 것이 유리하다.
- 예: S = 10, K = 3일 때 → 3, 3, 4 (곱: 36)
- 2, 2, 6은 합은 같지만 곱이 작다 (24)
정수 S를 K로 나눈 몫(q)과 나머지(r) 를 활용하면 된다.
q, r = divmod(S, K)
S = q * K + r
nums = [q + 1] * r + [q] * (K - r)
r개의 항에는 (q+1), 나머지는 q
- r개의 수는 (q + 1)
- 나머지 (K - r)개의 수는 q
- 이 수들을 곱하면 최댓값
result = 1
for num in nums:
result *= num
print(result)
코드
# 백준 1500 - 최대 곱
# 분류 : 수학
S, K = map(int, input().split())
q, r = divmod(S, K)
nums = [q + 1] * r + [q] * (K - r)
result = 1
for num in nums :
result *= num
print(result)
'Programming > 백준' 카테고리의 다른 글
[실버 3] 백준 1012 - 유기농 배추 (파이썬) (0) | 2025.05.17 |
---|---|
[브론즈 1] 백준 10448 - 유레카 이론 (파이썬) (0) | 2025.05.16 |
[실버 3] 백준 23351 - 물 주기 (파이썬) (1) | 2025.05.15 |
[실버 5] 백준 27111 - 출입 기록 (파이썬) (0) | 2025.05.14 |
[실버 1] 백준 15903 - 카드 합체 놀이 (파이썬) (0) | 2025.05.13 |
댓글
이 글 공유하기
다른 글
-
[실버 3] 백준 1012 - 유기농 배추 (파이썬)
[실버 3] 백준 1012 - 유기농 배추 (파이썬)
2025.05.17 -
[브론즈 1] 백준 10448 - 유레카 이론 (파이썬)
[브론즈 1] 백준 10448 - 유레카 이론 (파이썬)
2025.05.16 -
[실버 3] 백준 23351 - 물 주기 (파이썬)
[실버 3] 백준 23351 - 물 주기 (파이썬)
2025.05.15 -
[실버 5] 백준 27111 - 출입 기록 (파이썬)
[실버 5] 백준 27111 - 출입 기록 (파이썬)
2025.05.14