Skip to content

Commit ecaa406

Browse files
authored
[백준 1158] 요세푸스 문제 - 자료구조
1 parent 5487444 commit ecaa406

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

hoseok/week01/Boj1158.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*
2+
큐를 이용해 k번째가 오기전까진 큐에서 꺼내고 다시 삽입한다.
3+
k번쨰를 만나게 되면 poll을 하고 응답값에 포함시킨다.
4+
위 작업을 큐가 빌때까지 반복한다.
5+
*/
6+
import java.io.*;
7+
import java.util.*;
8+
9+
class Main {
10+
public static void main(String[] args) throws Exception {
11+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
12+
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
13+
StringTokenizer st = new StringTokenizer(br.readLine());
14+
15+
Queue<Integer> que = new LinkedList<>();
16+
int n = Integer.parseInt(st.nextToken());
17+
int k = Integer.parseInt(st.nextToken());
18+
19+
for (int i = 1; i <= n; i++) {
20+
que.add(i);
21+
}
22+
StringBuilder result = new StringBuilder();
23+
result.append("<");
24+
while (que.size() > 1) {
25+
for (int i = 0; i < k - 1; i++) {
26+
que.offer(que.poll());
27+
}
28+
result.append(que.poll()).append(", ");
29+
}
30+
result.append(que.poll()).append(">");
31+
32+
bw.write(result.toString());
33+
bw.flush();
34+
bw.close();
35+
}
36+
}

0 commit comments

Comments
 (0)