반응형
🔺 문제
10845번: 큐
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
🔺 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
Queue<Integer> queue = new LinkedList<>();
int N = Integer.parseInt(br.readLine());
int backNum = 0; // 🔔 맨 뒤 값 저장 변수 🔔
while(N --> 0) {
String[] str = br.readLine().split(" ");
switch(str[0]) {
case "push":
queue.add(Integer.parseInt(str[1]));
backNum = Integer.parseInt(str[1]); // 🔔 push할 때 맨 뒤 값도 함께 저장
break;
case "pop":
sb.append(queue.isEmpty() ? -1 : queue.poll()).append("\n");
break;
case "size":
sb.append(queue.size()).append("\n");
break;
case "empty":
sb.append(queue.isEmpty() ? 1 : 0).append("\n");
break;
case "front":
sb.append(queue.isEmpty() ? -1 : queue.peek()).append("\n");
break;
case "back":
sb.append(queue.isEmpty() ? -1 : backNum).append("\n"); // 🔔
break;
}
}
System.out.println(sb);
}
}
|
cs |
✅ 해결 아이디어
✔ 큐
- 큐 맨 뒤 값 출력 방법 : push할 때 입력받은 값을 변수로 따로 저장해서 갖고와 사용
🔺 다른 풀이들
- 리스트 양방향에 대한 접근이 가능한 LinkedList로 받아 getLast로 맨 뒤 원소 받으셨음
로그인
www.acmicpc.net
- 덱 사용해도 peekLast로 맨 뒤 원소 가져올 수 있을 듯!
💬 느낀 점
switch-case문과 삼항 연산자 짱...
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
[백준/JAVA] 18258번: 큐 2
🔺 문제 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나
bono039.tistory.com
반응형
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 1654번: 랜선 자르기 (0) | 2023.06.29 |
---|---|
[백준/JAVA] 11866번: 요세푸스 문제 0 (0) | 2023.06.28 |
[백준/JAVA] 1926번: 그림 (0) | 2023.06.26 |
[백준/JAVA] 8979번: 올림픽 (0) | 2023.06.24 |
[백준/JAVA] 1063번: 킹 (0) | 2023.06.23 |