
큐 관련한 문제를 푸는데 큐에 대해 아직 잘 모르는 것 같아서 간단한 문제를 먼저 풀어봤다.
자바에서 큐를 구현할때 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 |