Algorithm/백준 알고리즘
백준_10845 큐(자바) / 자료구조
미스터로즈
2021. 4. 2. 08:35
시간 & 메모리 제한

문제

입력 & 출력

자료구조를 구현하는 문제풀이
package com.Back;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.StringTokenizer;
public class Back_10845 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int TestCase = Integer.parseInt(br.readLine());
Deque<Integer> qu = new ArrayDeque<Integer>();
StringBuilder output = new StringBuilder();
for(int tc = 0 ; tc < TestCase; tc++) {
StringTokenizer st = new StringTokenizer(br.readLine());
String command =st.nextToken();
int input =0;
if(command.equals("push")) {
input = Integer.parseInt(st.nextToken());
}
switch (command) {
case "push":
qu.offer(input);
break;
case "pop":
if(qu.size()==0) {
output.append("-1\n");
break;
}
output.append(qu.poll()+"\n");
break;
case "size":
output.append(qu.size()+"\n");
break;
case "empty":
if(qu.size()==0) {
output.append("1\n");
}else {
output.append("0\n");
}
break;
case "front":
if(qu.size()==0) {
output.append("-1\n");
break;
}
output.append(qu.getFirst()+"\n");
break;
case "back":
if(qu.size()==0) {
output.append("-1\n");
break;
}
output.append(qu.getLast()+"\n");
break;
}
}
System.out.println(output);
}
}
- 이 문제는 Queue에 대한 메소드를 구현해보는 문제입니다.
- push , pop, size , empty, front , back 의 기능을 알고 있으면 좀 더 쉽게 풀 수 있을것입니다.
- 문제 해결은 switch문을 이용해서 문제를 해결 했습니다.
- 저는 큐도 좋지만 데크를 이용이 좀 편해서 데크를 이용했습니다.
- 큐와 데크의 차이는 큐는 선입선출(FIFO) 구조 이지만 데크는 앞 뒤로 다 넣고 뺄 수 있습니다.