티스토리 뷰
728x90
문제
- 정수를 저장하는 큐을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램 작성
- push X : 정수 X를 큐에 넣기
- pop : 스택에서 가장 앞에 있는 정수를 빼고, 그 수 출력. 만약 큐에 들어있는 정수가 없는 경우 -1 출력
- size : 큐에 들어있는 정수의 개수 출력
- empty : 큐가 비어있으면 1, 아니면 0 출력
- front : 큐의 가장 앞에 있는 정수 출력. 만약 큐에 들어있는 정수가 없는 경우 -1 출력
- back : 큐의 가장 뒤에 있는 정수 출력. 만약 큐에 들어있는 정수가 없는 경우 -1 출력
해결방법
이 문제를 해결할 때에는 자바 내의 ArrayDeque 클래스를 이용하여 문제를 해결하였다. push X (add(x)), pop (poll()), size(size()), empty(isEmpty()), front(peekFirst()), back(peekLast()) 메소드를 이용하여 문제를 해결하였다.
코드
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
ArrayDeque<Integer> queue = new ArrayDeque<>(); // 숫자 저장하는 queue
for(int i = 0; i<N; i++){
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
String command = st.nextToken();
// push 연산을 위해 add() 메소드 이용
if(command.equals("push")) queue.add(Integer.parseInt(st.nextToken()));
// pop 연산을 위해 poll() 메소드 이용
else if(command.equals("pop")){
if (queue.isEmpty()) sb.append(-1).append("\n");
else sb.append(queue.poll()).append("\n");
}
// size 연산을 위해 size() 메소드 이용
else if (command.equals("size")) sb.append(queue.size()).append("\n");
// empty 연산을 위해 isEmpty() 메소드 이용
else if (command.equals("empty")){
if (queue.isEmpty()) sb.append(1).append("\n");
else sb.append(0).append("\n");
}
// front 연산을 위해 peekFirst() 메소드 이용
else if(command.equals("front")){
if (queue.isEmpty()) sb.append(-1).append("\n");
else sb.append(queue.peekFirst()).append("\n");
}
// back 연산을 위해 peekLast() 메소드 이용
else if(command.equals("back")){
if (queue.isEmpty()) sb.append(-1).append("\n");
else sb.append(queue.peekLast()).append("\n");
}
}
System.out.println(sb);
br.close();
}
}
728x90
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 1497번 기타콘서트(JAVA) (0) | 2022.12.19 |
---|---|
[백준] 10866번 덱(JAVA) (0) | 2022.07.28 |
[백준] 10828번 스택(JAVA) (1) | 2022.07.28 |
[백준] 10816번 숫자 카드 2(JAVA) (0) | 2022.07.28 |
[백준] 10814번 나이순 정렬(JAVA) (0) | 2022.07.25 |
댓글