https://www.acmicpc.net/problem/10845
10845번: 큐
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
해석 및 팁
이 문제는 Queue를 활용하는 기본 문제입니다. 나머지는 기본사용법대로 사용하면 되지만 back 인경우에는 가장 마지막 값을 출력해주어야 하기 때문에 가장 마지막에 입력받는 값을 num에 저장한 후에 num을 출력하면 됩니다.
Java 코드
import java.util.Scanner;
import java.util.Queue;
import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Queue<Integer> q = new LinkedList<>();
StringBuilder sb = new StringBuilder();
int n = sc.nextInt();
int num = 0;
for(int i = 0; i < n; i++) {
String str = sc.next();
if(str.equals("push")) {
num = sc.nextInt();
q.add(num);
}
else if(str.equals("pop")) {
if(q.isEmpty()) sb.append(-1+"\n");
else sb.append(q.poll()+"\n");
}
else if(str.equals("size")) sb.append(q.size()+"\n");
else if(str.equals("empty")) {
if(q.isEmpty()) sb.append(1+"\n");
else sb.append(0+"\n");
}
else if(str.equals("front")) {
if(q.isEmpty()) sb.append(-1+"\n");
else sb.append(q.peek()+"\n");
}
else if(str.equals("back")) {
if(q.isEmpty()) sb.append(-1+"\n");
else sb.append(num+"\n");
}
}
System.out.println(sb);
}
}
'백준' 카테고리의 다른 글
백준 10866 덱(Java) (0) | 2023.01.25 |
---|---|
백준 2164 카드2(Java) (0) | 2023.01.25 |
백준 10773 제로(Java) (0) | 2023.01.25 |
백준 1018 체스판 다시 칠하기(Java) (0) | 2023.01.25 |
백준 11047 동전 0(Java) (2) | 2023.01.25 |