본문 바로가기
알고리즘/스택, 큐

[백준] 1158번 요세푸스 문제 #Java

by VIPeveloper 2022. 5. 17.
반응형

같은 문제인데 걍 보자마자 풀렸다. 이래서 많이 푸는건가 싶었다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;

class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        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);
        }

        solution(q,m);
    }

    private static void solution(Queue<Integer> q,int m) {
        int idx=1;
        StringBuilder sb = new StringBuilder();
        sb.append("<");
        while (!q.isEmpty()){
            if(idx!=m){
                q.offer(q.poll());
            }else{
                sb.append(q.poll());
                if(!q.isEmpty()){
                    sb.append(", ");
                }else{
                    sb.append(">");
                }
                idx=0;
            }
            idx++;
        }
        System.out.println(sb.toString());
    }
}
반응형