[백준] 11866번: 요스푸스 문제0

앙이🐯·2022년 7월 16일
0

알고리즘

목록 보기
21/22

백준 11866번: 요스푸스 문제0

1. 문제 설명

2. 문제 풀이

< Queue 메서드 >

메서드설명
boolean isEmpty()Queue가 비어있는지 알려준다.
Object peek()Queue의 맨 앞에 저장된 객체를 반환한다.poll()과 달리 Queue에서 객체를 꺼내지는 않는다.
Object poll()Queue의 맨 앞에 저장된 객체를 꺼내서 반환한다.
Object offer(Object item) Queue에 객체(item)을 저장한다.
int size()Queue의 크기를 반환한다.
boolean contains(Object item) Queue에 객체(item)이 있는지 확인한다. 있으면 true, 없으면 false 를 반환한다.

//K번째 수가 되기 전까지 맨 앞의 숫자를 poll()한 후 큐 맨 뒤에 새로 추가
for(int i=1;i<K;i++) {
	q.offer(q.poll());
}
//K번째 수는 poll()하여 answer에 추가
answer+=q.poll();

코드
import java.util.*;

public class No_11866 {
	
	public static void main(String[] args) {
	
		Scanner sc = new Scanner(System.in);
		int N=sc.nextInt();
		int K=sc.nextInt();
		String answer="<";
		
		Queue<Integer> q=new LinkedList<>();
		
		for(int i=1;i<=N;i++) {
			q.offer(i);
		}
		
		while(!q.isEmpty()) {
         //K번째 수가 되기 전까지 맨 앞의 숫자를 poll()한 후 큐 맨 뒤에 새로 추가
			for(int i=1;i<K;i++) {
				q.offer(q.poll());
			}
			answer+=q.poll();
			if(q.size()>0) {
				answer+=", ";
			}
		}
		answer+=">";
		System.out.println(answer);
	}
}
결과

0개의 댓글