ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • boj)1158 - 요세푸스 문제
    PS/boj 2020. 9. 14. 16:38
    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
킹수빈닷컴