본문 바로가기
Algorythms

백준 1500번 최대 곱 c++ 풀이

by 준형코딩 2024. 1. 22.

문제

세준이는 정수 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

 

 

수들의 곱은 수들의 표준 편차가 적을 수록 곱이 커진다는 원칙을 이용하는 문제이다.

n과 k가 주어졌을 때 n / k 를 한 갯수만큼 (평균) 값을 곱해주고 n % k인 만큼 1씩 배분해서 (평균 + 1) 곱해주는 문제이다.