728x90
https://www.acmicpc.net/problem/11866
11866번: 요세푸스 문제 0
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)
www.acmicpc.net
풀이)
import java.util.ArrayDeque;
import java.util.Queue;
import java.util.Scanner;
public class Main_BJ_11866_요세푸스문제0 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
int n = sc.nextInt();
int k = sc.nextInt();
Queue<Integer> q = new ArrayDeque<>();
for(int i=1; i<=n; i++)
q.add(i);
sb.append("<");
while(q.size()>1){
for(int i=0; i<k-1; i++){
q.add((q.poll()));
}
sb.append(q.poll()+", ");
}
sb.append(q.poll()+">");
System.out.println(sb);
}//main
}
오랜만에 요세푸스 문제를 풀어보았다.
queue를 이용하면 많이 편리하다!
poll과 동시에 add(offer)를 하면 편리하고, 순서에 맞을 때만 poll해주면 된다.
문제에 맞게만 잘 했다면 쉬운 문제!
728x90
'코테 > 백준' 카테고리의 다른 글
백준 11727 2xn 타일링 2(JAVA) (0) | 2023.02.01 |
---|---|
백준 2178 미로 탐색(JAVA) (0) | 2023.01.31 |
백준 1181 단어정렬(JAVA) (0) | 2023.01.29 |
백준 11725 트리의 부모찾기(JAVA) (0) | 2023.01.29 |
백준 1271 엄청난 부자2(JAVA) (0) | 2023.01.28 |