반응형


생각할게 한가지 있었는데 어떻게 마지막 값을 뽑아 올것인지에 대한 Back 명령어였다.

Queue는 선입선출이기 때문에 아주 단순히 Push를 해줄 때마다 값을 저장해주면  마지막값으로 저장된다는 생각을 갖고 '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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import java.io.FileInputStream;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
 
        // Scanner sc = new Scanner(System.in);
        Scanner sc = new Scanner(new FileInputStream("input.txt"));
        int n = sc.nextInt();
        sc.nextLine();
 
        Queue q = new LinkedList();
        int x;
        int last = 0; //마지막값을 위한 변수
        for (int i = 0; i < n; i++) {
            String str = sc.nextLine();
 
            String instruction[] = str.split(" ");
 
            switch (instruction[0]) {
            case "pop":
                if (q.isEmpty()) {
                    System.out.println("-1");
                } else {
                    System.out.println(q.poll()); // 제거 하며 읽기
                }
 
                break;
 
            case "push":
                x = Integer.parseInt(instruction[1]);
                last = x;
                q.offer(x);
                break;
 
            case "size":
                System.out.println(q.size());
                break;
 
            case "empty":
                if (q.isEmpty()) {
                    System.out.println("1");
                } else {
                    System.out.println("0");
                }
                break;
 
            case "front":
                if (q.isEmpty()) {
                    System.out.println(-1);
                } else {
                    System.out.println(q.peek());
                }
                break;
 
            case "back":
                if (q.isEmpty()) {
                    System.out.println(-1);
                } else {
                    System.out.println(last);
                }
                break;
 
            }
 
        }
 
    }
 
}
cs


반응형

+ Recent posts