반응형
생각할게 한가지 있었는데 어떻게 마지막 값을 뽑아 올것인지에 대한 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 |
반응형
'나는요 공부가 좋....은걸... > 알고리즈음' 카테고리의 다른 글
[BOJ] 백준 10989 - 수 정렬하기 3 (자바) (3) | 2018.01.08 |
---|---|
[BOJ] 백준 1182 - 부분집합 (자바) (0) | 2017.12.05 |
[BOJ] 백준 1026 - 보물 (자바) (0) | 2017.12.05 |
[BOJ] 백준 7785 - 회사에 있는 사람 (자바) (1) | 2017.11.20 |
[BOJ] 백준 10828 - 스택 (자바) (0) | 2017.11.20 |