코딩가딩가

[JAVA]BOJ 2161, 카드1

Noooodle 2024. 8. 18. 20:54

큐 관련한 문제를 푸는데 큐에 대해 아직 잘 모르는 것 같아서 간단한 문제를 먼저 풀어봤다.

 

자바에서 큐를 구현할때 LinkedList, PriorityQueue, ArrayDeque 등을 사용할 수 있다.

 

큐의 주요 메소드

  • add()
    • 큐의 뒤에 요소를 추가한다.
    • 큐가 가득 찼을 때 예외를 발생시킨다. 성공하면 'true'를 반환한다.
  • poll()
    • 큐의 제일 앞에 있는 요소를 제거하고 반환한다.
    • 큐가 비어있으면 'null'을 반환한다.
    • remove() 와 비슷하지만, remove()는 큐가 비어있을때 예외를 발생시킨다.
    • 따라서 큐가 비어있지 않다고 확신할때 remove를 사용한다.
  • peek()
    • 큐의 앞에 있는 요소를 반환한다. 제거하지는 않는다.
    • 큐가 비어있으면 예외를 발생시킨다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;

public class BOJ2161 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N, i;
        Queue<Integer> queue = new LinkedList<>();

        N = Integer.parseInt(br.readLine());

        for(i=1;i<=N;i++)
            queue.add(i);

        while(queue.size() > 1){
            System.out.print(queue.poll()+" "); // 맨 앞 카드 버리기
            queue.add(queue.poll()); // 맨 앞 카드 뒤에 추가
        }
        System.out.println(queue.poll());
    }
}

 

'코딩가딩가' 카테고리의 다른 글

[JAVA]BOJ 10845, 큐  (0) 2024.08.18
[JAVA]BOJ 2164, 카드2  (0) 2024.08.18
[JAVA]BOJ 15961, 회전 초밥  (0) 2024.08.18
[JAVA]BOJ 7795, 먹을 것인가 먹힐 것인가  (0) 2024.08.17
[JAVA]BOJ 2503, 숫자 야구  (0) 2024.08.11