[백준/JAVA] 11866번: 요세푸스 문제 0
🔺 문제
11866번: 요세푸스 문제 0
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)
www.acmicpc.net
🔺 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
Queue<Integer> queue = new LinkedList<>();
for(int i = 1 ; i <= N ; i++) {
queue.add(i);
}
StringBuilder sb = new StringBuilder();
sb.append("<");
while(queue.size() > 1) {
// 🔔 K번째 수가 되기 직전까지 맨 앞의 원소를 K-1번 꺼내오고
// 꺼내온 원소들을 맨 뒤로 넣기 🔔
for(int i = 0 ; i < K - 1 ; i++) {
queue.offer(queue.poll());
}
sb.append(queue.poll()).append(", ");
}
sb.append(queue.poll()).append(">"); // 마지막 원소 1개
System.out.println(sb);
}
}
|
cs |
✅ 해결 아이디어
✔ 큐
- K번째 수가 되기 직전까지 맨 앞의 원소를 K-1번 꺼내오고, 꺼내온 원소들을 맨 뒤로 넣기
🔺 다른 풀이들
- 큐 대신 리스트를 활용해 K값을 매번 K씩 증가시키며 해당원소를 삭제하면서 해당 값을 출력하는 방법
[백준] 11866번 : 요세푸스 문제 0 - JAVA [자바]
www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 문제 알고리즘 [접근 방법] 큐를 이용한 매우 쉬운 문제
st-lab.tistory.com
- 자세한 설명... 굿.. (복습용)
[Java] 백준 11866번 [요세푸스 문제 0] 자바
[Java] 백준 11866번 [요세푸스 문제 0] 자바
velog.io
- 자세한 주석 설명 굿2....
[알고리즘/백준] 11866 요세푸스 문제 0(자바, 큐)
문제 https://www.acmicpc.net/problem/11866 풀이 코드 큐 자료구조를 사용하여 풀이 package boj; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue
developer-hm.tistory.com
💬 느낀 점
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
✔ 감사드리는 선생님.... 과정 설명도 최고시다...👍👍👍
[백준] 11866번 : 요세푸스 문제 0 - JAVA [자바]
www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 문제 알고리즘 [접근 방법] 큐를 이용한 매우 쉬운 문제
st-lab.tistory.com