백준 1500 최대 곱

Seo-Faper·2022년 10월 30일
0

알고리즘 문제해결

목록 보기
9/19

세준이는 정수 S와 K가 주어졌을 때, 합이 S인 K개의 양의 정수를 찾으려고 한다. 만약 여러개일 경우 그 곱을 가능한 최대로 하려고 한다.

가능한 최대의 곱을 출력한다.

만약 S=10, K=3이면, 3,3,4는 곱이 36으로 최대이다.

입력

첫째 줄에 두 수 S와 K가 주어진다. K는 20보다 작거나 같고, S는 100보다 작거나 같으며 K보다 크거나 같다.

출력

첫째 줄에 정답을 출력한다. 답은 9223372036854775807보다 작다.

예제 입력 1 

10 3 

예제 출력 1 

36 

예제 입력 2 

10 1 

예제 출력 2 

10 

예제 입력 3 

10 10 

예제 출력 3 

1 

예제 입력 4 

13 8 

예제 출력 4 

32 

예제 입력 5 

7 2 

예제 출력 5 

12

10 3의 경우 10을 3으로 나누면 3,3,3 이 되고 1이 남는다.

이 1을 하나 더해서 4,3,3 으로 만들면 곱의 최대가 된다.

최대의 곱을 구하는 방법은 예를 들어 10을 1,2,3,4 라고 했을 때

1이 적을 수록 값이 커진다. 2,2,3,3 로 만들었을 때 2*2가 4와 같기 때문에

4 3 3 이 가장 큰 값이 된다.

N,K = map(int,input().split())

a = N // K
b = N % K


L = [a]*K

for i in range(b):
    L[i] +=1

ans = 1
for i in L:
    ans *=i

print(ans)

어려운 문제를 계속 피하면 발전할 수 없다. 결핍과 열등함을 계속 꺼내서 현실과 마주해야 한다.
그래야 발전할 수 있다.

profile
gotta go fast

0개의 댓글