본문 바로가기
짱구 굴리기 (Q) -

[백준 11866] 조세퍼스 문제 0

by skwzz 2019. 4. 1.

출처 : https://www.acmicpc.net/problem/11866

 

큐를 사용해 문제를 해결했습니다

 

public class Q11866 {
	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 k = Integer.parseInt(st.nextToken());
		
		Queue<Integer> q = new LinkedList<Integer>();
		for(int i=1; i<=n; i++) {
			q.add(i);
		}
		
		int loop =1;
		System.out.print("<");
		while(!q.isEmpty()){
			
			if(loop%k==0){
				System.out.print(q.poll());
				if(!q.isEmpty()) {
					System.out.print(", ");
				}
			}
			if(loop%k!=0){
				q.offer(q.poll());
			}
			loop++;
		}
		System.out.print(">");
	}
}

루프카운트를 늘리면서 k번째 왔을때는 큐에서 빼고,

k번째가 아닐 경우는 뺏다가 다시 뒤로 붙여주면 순서가 유지되면서 

반복문을 돌릴 수 있습니당

 

'짱구 굴리기 (Q) - ' 카테고리의 다른 글

[백준 1193] 분수찾기  (0) 2019.04.02
[프로그래머스] 프린터  (0) 2019.04.02
[백준 1065] 한수  (0) 2019.01.29
[백준 1920] 수 찾기  (0) 2019.01.25
[백준 1012] 유기농 배추  (0) 2019.01.25