Skip to content

Commit 39e58f1

Browse files
authored
Merge pull request #659 from AlgorithmWithGod/LiiNi-coder
[20250813] BOJ / G4 / 샘터 / 이인희
2 parents cb210b3 + b010158 commit 39e58f1

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
```java
2+
import java.io.BufferedReader;
3+
import java.io.IOException;
4+
import java.io.InputStreamReader;
5+
import java.util.*;
6+
7+
public class Main {
8+
private static BufferedReader br;
9+
private static StringTokenizer st;
10+
11+
public static void main(String[] args) throws IOException {
12+
br = new BufferedReader(new InputStreamReader(System.in));
13+
st = new StringTokenizer(br.readLine());
14+
int n = Integer.parseInt(st.nextToken());
15+
int k = Integer.parseInt(st.nextToken());
16+
Queue<Integer> q = new LinkedList<>();
17+
HashSet<Integer> visited = new HashSet<>();
18+
st = new StringTokenizer(br.readLine());
19+
for (int i = 0; i < n; i++) {
20+
int x = Integer.parseInt(st.nextToken());
21+
q.offer(x);
22+
visited.add(x);
23+
}
24+
25+
long answer = 0;
26+
int distance = 1;
27+
int builtCount = 0;
28+
int[] dxs = { -1, 1 };
29+
30+
outer: // naming가능한 break문
31+
while (!q.isEmpty()) {
32+
int size = q.size();
33+
for (int t = 0; t < size; t++) {
34+
int x = q.poll();
35+
for (int d : dxs) {
36+
int nx = x + d;
37+
if (visited.contains(nx))
38+
continue;
39+
visited.add(nx);
40+
q.offer(nx);
41+
answer += distance;
42+
builtCount++;
43+
if (builtCount == k)
44+
break outer;
45+
}
46+
}
47+
distance++;
48+
}
49+
System.out.println(answer);
50+
br.close();
51+
}
52+
}
53+
```

0 commit comments

Comments
 (0)