문제 출처 : https://www.acmicpc.net/problem/11866
문제:
설명:
원형에서 계속 돌고 도는 형태이기 때문에, 큐(Queue) 자료구조를 사용했습니다.
코드:
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
//Queue 사용! "원(Circle)형 문제"
public class BOJ11866_Josephus {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt(), K=sc.nextInt();
Queue<Integer> que = new LinkedList<>();
StringBuilder sb = new StringBuilder();
int idx=0;
for(int i=1; i<=N; i++) { //인원을 추가
que.add(i);
}
sb.append("<");
while(!que.isEmpty()) {
for(int i=0; i<K-1; i++) { //제거할 것 이전의 요소들을 dequeue & enqueue
int n = que.peek(); //맨 첫번째 값
que.remove();
que.add(n);
}
sb.append(que.peek() + ", "); //차례가 다 되었으니, 처음 값 꺼냄
que.remove();
}
sb.setLength(sb.length()-2); //끝에 쉼표와 공백 제거
sb.append(">");
System.out.println(sb);
}
}
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[BOJ][JAVA]2493 - 탑 (0) | 2021.08.20 |
---|---|
[BOJ][JAVA]17478번 - 재귀함수가 뭔가요? (0) | 2021.08.16 |
[BOJ][JAVA]1244 - 스위치 켜고 끄기 (0) | 2021.08.15 |
[BOJ][JAVA]2961 - 도영이가 만든 맛있는 음식 (0) | 2021.08.12 |
[BOJ][JAVA]2563 - 색종이 (0) | 2021.08.11 |