https://www.acmicpc.net/problem/20301
20301번: 반전 요세푸스
첫째 줄에 정수 $N$, $K$, $M$이 주어진다. ($1 \leq N \leq 5\ 000$, $1 \leq K, M \leq N$)
www.acmicpc.net
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
Deque<Integer> dq = new ArrayDeque<>();
for (int i = 1; i <= N; i++) {
dq.offer(i);
}
boolean forward = true;
int kCnt = 0;
int mCnt = 0;
while (!dq.isEmpty()) {
if (++kCnt < K) {
if (forward) dq.offerLast(dq.pollFirst());
else dq.offerFirst(dq.pollLast());
} else {
kCnt = 0;
sb.append(dq.pollFirst()).append("\n");
if (++mCnt == M) {
mCnt = 0;
forward = !forward;
}
if (!forward && dq.size() != 0) dq.offerFirst(dq.pollLast());
}
}
System.out.print(sb);
}
}
'OJ' 카테고리의 다른 글
[BOJ] 17608 막대기 (JAVA) (0) | 2023.05.17 |
---|---|
[BOJ] 3986 좋은 단어 (JAVA) (1) | 2023.05.16 |
[BOJ] 27931 Parity Constraint Closest Pair (Easy) (JAVA) (0) | 2023.05.14 |
[BOJ] 14909 양수 개수 세기 (JAVA) (0) | 2023.05.13 |
[BOJ] 27930 당신은 운명을 믿나요? (JAVA) (0) | 2023.05.12 |