- 생각
1. 이 문제를 풀 때 가장 중요하게 알아야 하는 것은 정수 S와 K가 주어졌을 때, 합이 S인 K개의 양의 정수를 찾는 것이다. 어떻게 구할까??
합이 S인 K개의 양의 정수를 찾는 방법은 S를 K로 나눈 몫 K-1개와 나눈 몫+1 한개의 수인 K개의 수의 곱이 최대의 값을 가진다는 것이다.
- 코드
정답 코드 : 합이 S인 K개의 양의 정수를 찾는 방법은 S를 K로 나눈 몫 K-1개와 나눈 몫+1 한개의 수인 K개의 수의 곱이 최대의 값이다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int S, K;
public static void main(String[] args) throws Exception {
SetData();
System.out.println(FindMaxValue());
}
private static void SetData() throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
S = Integer.parseInt(st.nextToken());
K = Integer.parseInt(st.nextToken());
}
private static long FindMaxValue() {
int q = S / K; // 몫
int r = S % K; // 나머지
long max = 1;
for (int i = 1; i <= K; i++) {
if (i <= r) {// 나머지 갯수만큼 +1
max *= (q + 1);
} else {
max *= q;
}
}
return max;
}
}
'algorithm' 카테고리의 다른 글
[JAVA] 백준 2407번 : 조합 (0) | 2020.11.20 |
---|---|
[JAVA] 백준 14650번 : 걷다보니 신천역 삼 (Small) (0) | 2020.11.19 |
[JAVA] 백준 2293번 : 동전 1 (0) | 2020.11.18 |
[JAVA] 백준 17825번 : 주사위 윷놀이 (0) | 2020.11.18 |
[JAVA] 백준 13904번 : 과제 (0) | 2020.11.17 |