hahn

단계별로 풀어보기(큐, 덱 - 요세푸스 문제0) 본문

코딩테스트 연습/백준(JAVA)

단계별로 풀어보기(큐, 덱 - 요세푸스 문제0)

hahn 2021. 9. 18. 11:02
728x90
반응형

11866번: 요세푸스 문제 0 (acmicpc.net)

 

11866번: 요세푸스 문제 0

첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)

www.acmicpc.net

http://boj.kr/f69dca3da621429584102d2044f0f7a7

 

공유 소스 보기

 

www.acmicpc.net

더보기
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayDeque;
import java.util.Deque;

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));
		
		Deque<Integer> dq = new ArrayDeque<Integer>();
		
		String[] stArr = br.readLine().split(" ");
		
		
		for(int i = Integer.parseInt(stArr[0]); i > 0; i--) {
			
			dq.addFirst(i);
			
		}
		
		bw.write("<");
	
		while(dq.size() != 0) {
			
			for(int i = 1; i < Integer.parseInt(stArr[1]); i++) {
				
				dq.addLast(dq.pop());
				
			}
			
			bw.write(String.valueOf(dq.pop()));
			if(dq.size() != 0) bw.write(", ");
		}
		
		bw.write(">");
		bw.close();
        
    }
    
}

 

덱 이용해서

 

두 번째 입력받는 수 기준으로

 

addLast 하고 pop 해서 수열 출력하게 했다.

728x90
반응형