-
1158) 조세푸스 문제 - JAVA백준코딩일기 2020. 1. 6. 20:03
풀이 )
큐 문제에서 파생되었다고 하길래, 원형큐를 떠올리며 해보았다.
첫번째 while 문에서는 큐가 비어 있지 않을때 계속 돌도록 조건을 제시하고,
for문에서는 K보다 작을때의 경우, 즉 예를들어 K=3이라면 1번과 2번의 값은 맨 뒤에 이어 붙이기를 하고,
K 번째 차례가 되면 큐에서 빼내서 출력하는 식으로 만들었다.StringTokenizer 를 이용하지 않아서 계속 런타임 에러가 나서... 하루 종일을 고생하다 찾았다ㅠㅠ
1234567891011121314151617181920212223242526272829303132333435public 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(">");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