ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1158) 조세푸스 문제 - JAVA
    백준코딩일기 2020. 1. 6. 20:03

     

     

    풀이 )

    큐 문제에서 파생되었다고 하길래, 원형큐를 떠올리며 해보았다.
    첫번째 while 문에서는 큐가 비어 있지 않을때 계속 돌도록 조건을 제시하고,
    for문에서는 K보다 작을때의 경우, 즉 예를들어 K=3이라면 1번과 2번의 값은 맨 뒤에 이어 붙이기를 하고,
    K 번째 차례가 되면 큐에서 빼내서 출력하는 식으로 만들었다.

    StringTokenizer 를 이용하지 않아서 계속 런타임 에러가 나서... 하루 종일을 고생하다 찾았다ㅠㅠ

     

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    import java.io.*;
    import java.util.*;
    public class Main {
     
        public static void main(String[] args) throws IOException {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
            Queue<Integer> q = new LinkedList<Integer>();
            
            StringTokenizer st = new StringTokenizer(br.readLine());
            int N = Integer.parseInt(st.nextToken()); 
            int K = Integer.parseInt(st.nextToken());
            
            // N명의 사람 나열
            for(int i=1; i<=N; i++) {
                q.offer(i);
            }
            
            StringBuilder sb = new StringBuilder("<");
            while(!q.isEmpty()) {
                
                for(int i=1; i<=K; i++) {
                    if( i != K)
                        q.offer(q.poll());
                    else
                        sb.append(q.poll() + ", ");
                }
            }
            
            sb.delete(sb.length()-2, sb.length());
            sb.append(">");
            bw.write(sb.toString());
        }
    } cs

    '백준코딩일기' 카테고리의 다른 글

    10872) 팩토리얼 - JAVA  (0) 2020.01.15
    1676) 팩토리얼 0의 개수 - JAVA  (0) 2020.01.15
    2741) N 찍기 - JAVA  (0) 2020.01.01
    10814) 나이순 정렬 - JAVA  (0) 2019.12.29
    2751) 수 정렬하기 2 JAVA - 정렬  (0) 2019.12.26

    댓글

Designed by Tistory.