기록의 공유

잊지않기 위한 기록의 공유

Backend/Problem Solving

코데 대비5 - Deque(덱),동적프로그래밍

backend dev 2025. 12. 31. 11:23

1. Deque란?

Deque(Double Ended Queue, 덱)는 양쪽 끝에서 삽입/삭제가 모두 가능한 자료구조입니다.

 

[앞] ← [요소1] [요소2] [요소3] → [뒤]
     ↕                        ↕
   삽입/삭제              삽입/삭제

 

  • Stack처럼도 사용 가능 (LIFO)
  • Queue처럼도 사용 가능 (FIFO)
  • 양방향 큐로도 사용 가능

 

Deque deque = new ArrayDeque<Integer>();

 

  • 동적 배열 기반
  • Stack, Queue보다 빠름
  • null 저장 불가
  • 양쪽끝 연산이 O(1)

 

deque.addFirst(1);
deque.push(1); // 앞쪽 삽입

deque.addLast(1);
deque.offer(1); // 뒤쪽 삽입


deque.peekFirst();
deque.peek(); // 앞쪽 확인

deque.peekLast();

deque.pollFirst();
deque.pollLast();
deque.pop(); // 앞에서 제거
deque.poll(); // 앞에서 제거

 


 

동적프로그래밍 ( Dynamic Programming)

 

[Java] 동적프로그래밍 , Dynamic Programming

동적프로그래밍 DP, 동적프로그래밍은 하나의 큰 문제를 여러개의 작은 문제로 나눠서 그 결과를 저장하고 다시 큰 문제를 해결할 때 사용하는것으로 특정한 알고리즘이 아닌 하나의 문제해결

keeeeeepgoing.tistory.com