코테/백준

[백준/JAVA] 11866번: 요세푸스 문제 0

imname1am 2023. 6. 28. 23:13
반응형

🔺 문제

 

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

 

반응형