[알고리즘]/알고리즘
[알고리즘] 백준 1158번 : 요세푸스 문제 (실버4)
쿠릉쿠릉 쾅쾅
2022. 4. 28. 05:14
728x90
문제
https://www.acmicpc.net/problem/1158
📌 풀이
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.StringTokenizer;
class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
Deque<Integer> dq = new ArrayDeque<>();
for(int i=0; i<N; i++) {
dq.offerLast(i+1);
}
sb.append("<");
while(dq.size()!=1) {
// dq의 앞의 (k-1)개는 모두 dq의 마지막 요소로 넣기.
for(int i=1; i<K; i++) {
dq.offerLast(dq.pollFirst());
}
// k번째 수는 출력
sb.append(dq.pollFirst())
.append(", ");
}
sb.append(dq.pollFirst()).append(">");
bw.write(sb.toString());
bw.close();
}
}
728x90