백준 11866 자바(요세푸스)

정호윤·2023년 3월 8일

자바

목록 보기
21/46

Queue를 사용해야 하는 문제였다!queue를 처음 사용해봐서 애먹었지만 마지막 출력이 까다로운걸 빼면 그렇게 어려운 문제는 아니었다.

큐에 입력값을 전부 넣어놓은 뒤,출력할 데이터 전까지 데이터를 빼내고 다시 뒤로 넣는 작업을 반복한다(add,poll)그 뒤 데이터를 출력한다.

출력 예시를 보면 마지막 요소는 , 과 띄어쓰기가 없다.이걸 위해서 마지막 전 요소까지만 출력하고 마지막 요소는 그냥 출력해준다.

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
import java.util.LinkedList;
import java.util.Queue;



class Main{
    public static void main(String[] args){
     Scanner sc = new Scanner(System.in);
     Queue<Integer> queue = new LinkedList<>();
     int a = sc.nextInt();
     int b = sc.nextInt();
     // queue에 숫자들 저장
     for(int i=1;i<=a;i++){
        queue.add(i);
     }
     
     
     System.out.print("<");
     
     // 마지막 직전까지만 출력하기 위해서
     while(queue.size()>1){
         for(int i=0;i<b-1;i++){
            int q=queue.poll();
            queue.add(q);
         }
         System.out.print(queue.poll()+", ");
     }
     System.out.print(queue.poll()+">");
     
     
    }

}

자바 Queue 사용법
add(E e): Queue에 주어진 요소를 추가합니다. 추가에 성공하면 true를 반환하고, 공간이 부족하여 추가에 실패하면 IllegalStateException을 발생시킵니다.

offer(E e): Queue에 주어진 요소를 추가합니다. 추가에 성공하면 true를 반환하고, 공간이 부족하여 추가에 실패하면 false를 반환합니다.

remove(): Queue에서 첫 번째 요소를 제거하고, 제거된 요소를 반환합니다. Queue가 비어있을 경우 NoSuchElementException을 발생시킵니다.

poll(): Queue에서 첫 번째 요소를 제거하고, 제거된 요소를 반환합니다. Queue가 비어있을 경우 null을 반환합니다.

element(): Queue의 첫 번째 요소를 반환합니다. Queue가 비어있을 경우 NoSuchElementException을 발생시킵니다.

peek(): Queue의 첫 번째 요소를 반환합니다. Queue가 비어있을 경우 null을 반환합니다.

profile
개발자로 취직을 희망합니다.

0개의 댓글