본문 바로가기
백준

백준 1158: 요세푸스 문제(java)

by unhyepnhj 2024. 7. 17.

문제


풀이

 

https://sysouthelloworld.tistory.com/115

 

백준 11866: 요세푸스 문제 0(java)

문제풀이 큐의 전단과 후단에서 삽입과 삭제가 모두 일어나므로, 마찬가지로 덱을 사용해 풀이했다. for(int i=0; i우선 1부터 N까지의 값을 덱에 삽입하여 덱을 완성한다. 이제 K번째 요소를 덱에

sysouthelloworld.tistory.com

위와 동일한 풀이 방법을 사용하되, 덱이 아닌 연결 리스트를 사용했다.

Deque이 LinkedList를 상속하므로 유의미한 차이는 없다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.StringTokenizer;

public class Main {

	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 K=Integer.parseInt(st.nextToken());
		
		LinkedList<Integer> list=new LinkedList<>();
		for(int i=0; i<N; i++) {
			list.addLast(i+1);
		}
		
		sb.append("<");
		while(true) {
			if(list.size()==1) {
				sb.append(list.removeFirst()+">");
				break;
			}
			
			for(int i=0; i<K-1; i++) {
				list.addLast(list.removeFirst());
			}
			sb.append(list.removeFirst()+", ");
		}
		
		System.out.println(sb);
	}
}

'백준' 카테고리의 다른 글

백준 1021: 회전하는 큐(java)  (0) 2024.07.18
백준 2840: 행운의 바퀴(java)  (0) 2024.07.18
백준 2346: 풍선 터뜨리기(java)  (0) 2024.07.16
백준 28279: 덱 2(java)  (0) 2024.07.16
백준 11866: 요세푸스 문제 0(java)  (0) 2024.07.16