본문 바로가기
온라인 저지/BOJ

[BOJ/Java] 1158 요세푸스 문제

by ahj 2022. 2. 10.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;

public class BOJ1158 {

	public static void main(String[] args) throws Exception {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st = new StringTokenizer(in.readLine());
		int n = Integer.parseInt(st.nextToken());
		int k = Integer.parseInt(st.nextToken());
		in.close();
		// queue 생성
		Queue<Integer> q = new LinkedList<Integer>();
		for (int i = 1; i <= n; i++) {
			q.offer(i);
		}
		// queue가 비어있지 않을 동안
		int cnt;
		sb.append("<");
		while (!q.isEmpty()) {
			cnt = 0;
			// queue poll하면서 count++
			while (cnt < k - 1) {
				q.offer(q.poll());
				cnt++;
			}
			// count = k 되면 sb append
			sb.append(q.poll() + ", ");
		}
		sb.setLength(sb.length() - 2);
		sb.append(">");
		System.out.println(sb);
	}
}

'온라인 저지 > BOJ' 카테고리의 다른 글

[BOJ/Java] 1021 회전하는 큐  (0) 2022.02.13
[BOJ/Java] 2563 색종이  (0) 2022.02.11
[BOJ/Java] 13335 트럭  (0) 2022.02.10
[BOJ/Java] 2493 탑  (0) 2022.02.09
[BOJ/Java] 1966 프린터 큐  (0) 2022.02.09

댓글