728x90
반응형
1. 덱(백준 10866번)
▷ 풀이 코드
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.Deque; public class Main { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); Deque<Integer> deque = new ArrayDeque<>(); int num = Integer.parseInt(br.readLine()); for(int i=0; i<num; i++) { String behav[] = br.readLine().split(" "); switch (behav[0]) { case "push_front": deque.addFirst(Integer.parseInt(behav[1])); break; case "push_back": deque.addLast(Integer.parseInt(behav[1])); break; case "pop_front" : sb.append(deque.isEmpty()?-1:deque.pollFirst()).append("\n"); break; case "pop_back" : sb.append(deque.isEmpty()?-1:deque.pollLast()).append("\n"); break; case "size" : sb.append(deque.size()).append("\n"); break; case "empty" : sb.append(deque.isEmpty()?1:0).append("\n"); break; case "front" : sb.append(deque.isEmpty()?-1:deque.peekFirst()).append("\n"); break; case "back" : sb.append(deque.isEmpty()?-1:deque.peekLast()).append("\n"); break; } } System.out.println(sb); } }
이번에는 알고리즘 스터디에서 공부했던 Stack(스택)과 Queue(큐)를 결합한 구조인 Deque(데크)를 통해 백준 문제 풀이를 해보았습니다!!
Deque는 스택과 같이 마지막에 넣었던 값들을 출력할 수 있고 큐와 같이 첫 번째 넣었던 값을 출력할 수도 있네요
확실히 스택과 큐에 비해 원하는 맨 앞, 맨 뒤에서 사용할 수 있다는 점이 유용하네요!!
더 다양한 문제들을 풀어보면서 문제 풀이 방법들에 대해서 익혀볼게요~
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~
728x90
반응형
'문제풀기 > 백준 문제풀이' 카테고리의 다른 글
[알고리즘] 문자열 문제 풀이(백준 1316번, 1157번, 11721번, 1541번) (0) | 2023.08.18 |
---|---|
[알고리즘] 해시맵 문제 풀이(백준 10815번, 14425번) (0) | 2023.08.18 |
[알고리즘] 큐 문제 풀이(백준 10845번, 1158번, 1966번) (2) | 2023.08.10 |
[알고리즘] 우선순위 큐 문제 풀이 2 (백준 11286번) (0) | 2023.08.10 |
[알고리즘] 우선순위 큐 문제 풀이(백준 1927번, 11279번) (0) | 2023.08.03 |