본문 바로가기
CS/Algorithm

[알고리즘] 10845 큐

by 별토끼. 2018. 3. 12.
반응형

[알고리즘] 10845 큐


https://www.acmicpc.net/problem/10845



[풀이]

  • 큐는 First In First Out 이다.
  •  Java로 큐를 선언할 때는 LinkedList를 이용한다.
1
Queue<Integer> queue = new LinkedList<>();        
cs
  • push 는 offer 이용
  • Back 출력의 경우 직접 구현해줘야한다. 
    1. offer할 때 last 변수에 지속적으로 업데이트 시켜준다.


[코드]

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
50
51
52
package algorithm_basic;
 
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
 
public class q_10842 {
 
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int line_num = scan.nextInt();
        scan.nextLine();
        Queue<Integer> queue = new LinkedList<>();        
        
        int last=0;
        for(int i=0;i<line_num;i++) {
            String line = scan.nextLine();
            String[] num = line.split(" ");
            String cmd = num[0];
            if(cmd.equals("push")) {
                int push_num=Integer.parseInt(num[1]);
                last=push_num;
                queue.offer(push_num);
            }else if(cmd.equals("pop")) {
                if (queue.isEmpty()) {
                    System.out.println("-1");
                } else {
                    System.out.println(queue.poll());
                }
            }else if(cmd.equals("size")) {
                System.out.println(queue.size());
            }else if(cmd.equals("empty")) {
                if(queue.isEmpty()) {
                    System.out.println("1");
                }else
                    System.out.println("0");
            }else if(cmd.equals("front")) {
                if(queue.isEmpty()) {
                    System.out.println("-1");
                }else
                    System.out.println(queue.peek());
            }else if(cmd.equals("back")) {
                if(queue.isEmpty()) {
                    System.out.println("-1");
                }else
                    System.out.println(last);
            }
        
        }
    }
}
 
cs


반응형

'CS > Algorithm' 카테고리의 다른 글

[알고리즘] 10866 덱  (0) 2018.03.13
[알고리즘] 1158 조세퍼스 문제  (0) 2018.03.13
[알고리즘] 1406 에디터  (0) 2018.03.10
[알고리즘] 10799 쇠막대기  (0) 2018.03.08
[알고리즘] 9012 괄호  (0) 2018.03.08

댓글