반응형
문제 출처: www.acmicpc.net/problem/1500
1. 문제 접근 방식
- 주어진 수를 나누고 나머지 숫자를 어떻게 배분하느냐가 관건이였다. 간단한 수로 몇번 실험을 한 결과 1을 가장 고르게 분배했을 경우 값이 가장 크게 나오는 것을 알고 그대로 적용해 보았다.
2. 내가 푼 코드
import sys
S, K = map(int, sys.stdin.readline().split())
# 몫
q = S // K
# 나머지
r = S % K
n = 1
# 주어진 S를 K로 나누고 각각의 몫에 1씩 배분
# 1을 가장 많이 배분할 수록 가장 큰 수가 나옴
# K값을 1씩 줄여가며 0이 되기 전까지 곱셈 계산
while K != 0:
# 나머지의 수만큼 몫에 1을 더해 총 값을 계산
if r > 0:
n *= (q + 1)
r -= 1
# 나머지가 0인 경우 몫 값만 그대로 계산
else:
n *= q
K -= 1
print(n)
3. 결과 및 느낀점
- 성공! 정확한 원리를 모르고 했지만 맞은 케이스라 조금 찝찝하다. 더 알아보고 첨언으로 붙여봐야겠다.
반응형
'개인 공부 > Algorithm' 카테고리의 다른 글
[Baekjoon/백준] 1251번 Python (0) | 2021.04.14 |
---|---|
[Baekjoon/백준] 2548번 Python (0) | 2021.04.12 |
[Baekjoon/백준] 11047번 Python (0) | 2021.04.10 |
[개인공부] 알고리즘 공부 #6 (0) | 2021.04.09 |
[Baekjoon/백준] 1065번 Python (0) | 2021.04.09 |