백준 11866번 (요세푸스)

김경욱·2025년 9월 12일

백준

목록 보기
79/121

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import java.util.*;

import static java.util.Collections.*;

public 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());

  Deque<Integer> Queue = new ArrayDeque<>();

  for (int i = 1; i <= N; i++)
  {
      Queue.add(i);
  }


List<Integer> result = new ArrayList<>();

  while(!Queue.isEmpty())
  {
      for (int i = 0 ; i < M-1; i++)
      {
          Queue.add(Queue.poll());
      }

      result.add(Queue.poll());
  }

    System.out.print("<");

   for (int i = 0 ; i < result.size(); i++)
   {
       if ( i == result.size()-1)
       {
           System.out.print(result.get(i));
           break;
       }
       
       System.out.print(result.get(i));
       System.out.print(", ");
     
   }



    System.out.print(">");












}
}

ex) 7 3
큐를 이용하여 앞에 두개는 뒤로 보내면서 추가하고 세번째부터는 값을 제거하여 점점 큐가 비게 된다. 이걸 이용하여 푸는 문제였다. 또한 출력형식도 한번 외우면 좋을 것 같다.

0개의 댓글