봄봄.devlog
백준 | 10845번 :: 큐 본문
https://www.acmicpc.net/problem/10845
10845번: 큐
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 ��
www.acmicpc.net
🎈 문제 풀이
명령 "back"을 처리하기 위해 큐에 있는 것들을 ArrayList 배열에 저장해서 마지막 값을 리턴하는 메소드를 만들었는데,
다른 사람의 코드를 보니 push하는 값을 따로 변수 선언을 하여 저장해놓고 쉽게 출력하더라..
머리를 쓰자.. .
🎈 소스 코드
public class Q10845_1 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
Queue<Integer> queue = new LinkedList<>();
int T = Integer.parseInt(st.nextToken());
while(T-->0) {
st = new StringTokenizer(br.readLine());
String cmd = st.nextToken();
switch(cmd) {
case "push" :
queue.add(Integer.parseInt(st.nextToken()));
break;
case "front" :
System.out.println(queue.isEmpty() ? -1 : queue.peek());
break;
case "back" :
System.out.println(queue.isEmpty() ? -1 : back(queue));
break;
case "size" :
System.out.println(queue.size());
break;
case "empty" :
System.out.println(queue.isEmpty() ? 1 : 0 );
break;
case "pop" :
System.out.println(queue.isEmpty() ? -1 : queue.poll());
break;
default :
System.out.println("error");
return;
}
}
}
static int back(Queue<Integer> queue) {
Iterator iterator = queue.iterator();
List<Integer> list = new ArrayList<>();
while(iterator.hasNext()) {
list.add((Integer)iterator.next());
}
return list.get(list.size()-1);
}
}
'Algorithm > 백준' 카테고리의 다른 글
백준 7576번 :: 토마토 (BFS) (0) | 2020.08.23 |
---|---|
백준 11047번 :: 동전 0번 (그리디 알고리즘) (0) | 2020.08.16 |
백준 | 1966번 :: 프린터 큐 (0) | 2020.08.10 |
백준 | 10799번 :: 쇠막대기 (0) | 2020.08.09 |
백준 | 9012번 :: 괄호 (0) | 2020.08.09 |
Comments