Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 1d224d5

Browse files
committed
배수빈: [BOJ] 19939 박 터뜨리기_241122
1 parent 781b714 commit 1d224d5

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

‎BOJ/15001-20000번/SB_19939.java‎

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import java.io.BufferedReader;
2+
import java.io.IOException;
3+
import java.io.InputStreamReader;
4+
import java.util.StringTokenizer;
5+
6+
public class SB_19939 {
7+
static int N, K;
8+
public static void main(String[] args) throws IOException {
9+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
10+
StringTokenizer st = new StringTokenizer(br.readLine());
11+
12+
N = Integer.parseInt(st.nextToken());
13+
K = Integer.parseInt(st.nextToken());
14+
15+
// 우선, 나눌 수 있으려면 (0~K-1)까지 더한값이 N-K값보다 커야함
16+
// 0부터 K-1까지 합 (K개의 그룹에 최소 한 개씩 공을 배분하는 데 필요한 최소 공 개수) : 등차수열의 합
17+
int need = K * (K - 1) / 2;
18+
19+
if ((N-K) < need) {
20+
System.out.println(-1);
21+
return;
22+
}
23+
24+
// 최소 1개씩 배분 후 남은 공 T
25+
int T = N - need;
26+
27+
if (T%K==0) System.out.println(K - 1); // 나눠떨어지면 0~K-1로 분배할 수 있고, 이때 최소 차는 (K-1)-0으로 K-1
28+
else System.out.println(K); // 나눠떨어지지 않으면, 분배에 1씩 추가하게되고, 최소와 최대차가 1늘어남
29+
}
30+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /