-
[백준] 1158번 요세푸스 문제 | 큐 활용, 자바 | 코딩테스트 풀이알고리즘 2023. 8. 10. 16:30
문제링크 : https://www.acmicpc.net/problem/1158
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayDeque; public class Main { public static void main(String[] args) throws IOException { // 입력 BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); String line = bf.readLine(); // 첫번째 줄 int N = Integer.parseInt(line.split(" ")[0]); int K = Integer.parseInt(line.split(" ")[1]); // 계산 // 예시 1, 2, 3, 4, 5, 6, 7 -> K번째(3) // 1, 2, (3), 4, 5, 6, 7 // 4, 5, (6), 7, 1, 2 ... // 사람들 넣기 ArrayDeque<Integer> queue = new ArrayDeque<>(); for (int i = 0; i < N; i++) { queue.add(i + 1); } // System.out.println(queue); System.out.print("<"); while (!queue.isEmpty()) { // queue에 사람이 남아 있으면 for (int j = 0; j < K; j++) { if (j == K - 1) { // 1부터 세서 K에 도달하면 int num = queue.poll(); if (queue.isEmpty()) { System.out.println(num + ">"); } else { System.out.print(num + ", "); // 밖으로 내보냄 } } else { // K번째가 아닌 사람이라면 뒤로 다시 줄서게 하고 queue.add(queue.poll()); } } // System.out.println(queue); } } }
'알고리즘' 카테고리의 다른 글
맵Map과 해시Hash의기본 개념 (0) 2023.08.16 스택 구현하기 | Stack, ArrayDeque (0) 2023.08.10 큐 구현하기 | ArrayList, LinkedList, ArrayDeque (0) 2023.08.10 스택과 큐의 기본 개념 | visualgo.net (0) 2023.08.10 [백준]11651번: 좌표 정렬하기 2 | 배열 정렬, 람다식 | 코딩테스트 (0) 2023.08.10