반응형
[알고리즘] 10845 큐
https://www.acmicpc.net/problem/10845
[풀이]
- 큐는 First In First Out 이다.
- Java로 큐를 선언할 때는 LinkedList를 이용한다.
1 | Queue<Integer> queue = new LinkedList<>(); | cs |
- push 는 offer 이용
- Back 출력의 경우 직접 구현해줘야한다.
- 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 |
댓글