설모의 기록
[백준 11866] 조세퍼스 문제 본문
이 문제는 입력된 수만큼 사람이 원으로 앉고, 입력된 값만큼 원을 돌며 사람을 제거하는 문제입니다.
푸는 방식
- 큐에 N 까지의 숫자를 모두 넣습니다.
- (M - 1) 만큼 큐에서 숫자를 빼 마지막에 넣습니다.
- 큐에서 한개를 pop 해 출력합니다.
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { static Queue<Integer> q = new LinkedList<>(); static int N, M; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringTokenizer st = new StringTokenizer(br.readLine()); N = Integer.parseInt(st.nextToken()); M = Integer.parseInt(st.nextToken()); for (int i = 1; i <= N; i++) { q.offer(i); } bw.write("<" + print() + ">"); bw.flush(); } public static String print() { String str = ""; while (!q.isEmpty()) { for (int i = 0; i < M - 1; i++) { int num = q.poll(); q.offer(num); } str += q.poll() + ", "; } return str.substring(0, str.length() - 2); } }
'알고리즘' 카테고리의 다른 글
A* 알고리즘 (2) | 2018.03.15 |
---|---|
[백준 1003] 피보나치 함수 (0) | 2018.01.01 |
[백준 1260] DFS 와 BFS (0) | 2017.12.20 |
[백준 1966] 프린터 큐 (0) | 2017.12.20 |
[백준 1753] 최단경로 (0) | 2017.12.14 |