boj)1158 - 요세푸스 문제
2020. 9. 14. 16:38ㆍPS/boj
import java.io.*;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class boj_1158 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
Queue<Integer> q = new LinkedList<>();
for (int i = 1; i <= n; i++) {
q.offer(i);
}
sb.append("<");
while (!q.isEmpty()) {
for (int i = 0; i < m-1; i++) {
q.offer(q.poll());
}
if (q.size() == 1) {
sb.append(String.valueOf(q.poll()));
} else {
sb.append(String.valueOf(q.poll())).append(", ");
}
}
sb.append(">");
System.out.println(sb.toString());
}
}
- 큐 자료구조 이용
- 큐에서 m-1번만큼 빼고 넣어주기 반복
- 마지막엔 q.poll(), 사이즈가 1일땐 문자열 따로 처리
'PS > boj' 카테고리의 다른 글
boj)10799 - 쇠막대기 (0) | 2020.09.14 |
---|---|
boj)17413 - 단어 뒤집기 2 (0) | 2020.09.14 |
boj)1406 - 에디터 (0) | 2020.09.14 |
boj)1874 - 스택 수열 (0) | 2020.09.13 |
boj)9012 - 괄호 (0) | 2020.09.13 |