plzy의 개발 블로그

[Kotlin] Deque 란 무엇인가? 본문

알고리즘/자료구조

[Kotlin] Deque 란 무엇인가?

plzyhappy 2022. 4. 25. 09:09

Deque를 알기 전에 Stack과 Queue에 대해 먼저 알아야 한다.
왜냐하면 Stack과 Queue의 단점을 보완한 게 Deque이기 때문이다.

Stack란 무엇인가?

stack은 후입 선출(LIFO)로 풀이하자면 마지막으로 들어간 데이터가 가장 먼저 나온다.라는 뜻이다.
Kotlin에서의 Stack은 다른 Collection처럼 Interface가 존재하지 않고, 단일 클래스로 존재한다.
데이터를 입력하는 것을 push라고 하고 데이터를 꺼내는 게 pop이라고 한다.

Queue란 무엇인가?

queue는 선입선출(FiFO)로 풀이하자면 먼저 들어간 데이터가 가장 먼저 나온다.라는 뜻이다.
우리가 학창 시절 급식실에 줄을 설 때처럼 먼저 줄 선 사람은 먼저 밥 먹을 수 있고, 마지막에 들어온 사람은 가장 마지막에 먹을 수 있는 것처럼
먼저 들어온 데이터는 먼저 꺼내고 늦게 들어온 데이터는 늦게 들어온 만큼 늦게 나간다.
kotlikn에서는 offer로 데이터를 추가하고 poll로 데이터를 꺼낼 수 있다.

Deque란 무엇인가?

Deque는 Queue처럼 offer(추가)과 poll(삭제) 할 수 있다. Queue는 단방향이지만 Deque는 양방향으로 양 끝에서 입력과 삭제가 가능하다.
따라서 Deque는 Stack처럼 쓸 수 있고, Queue처럼 쓸 수 있으며 Stack과 Queue의 기능을 합친 것처럼 쓸 수 있다.

예제

https://happy-kmc.tistory.com/38

 

[백준 실버4] 덱 - kotlin

[Silver IV] 덱 - 10866 문제 링크 성능 요약 메모리: 27332 KB, 시간: 276 ms 분류 자료 구조(data_structures), 덱(deque) 문제 설명 정수를 저장하는 덱(Deque)를 구현한 다음, 입력으로 주어지는 명령을 처리..

happy-kmc.tistory.com

참고한 레퍼런스

https://medium.com/depayse/kotlin-data-structure-collections-4-stack-queue-deque-4c383efebee9

 

[Kotlin] Collections 4 — Stack, Queue, Deque

Kotlin에서 Stack, Queue, Deque을 사용하는 방법에 대해 다룹니다.

medium.com