[Kotlin] 코딩테스트 필수 - Stack, Queue

kimgwon·2024년 10월 4일

Kotlin

목록 보기
12/19

Stack은 Java의 Stack 클래스와, ArrayDeque를 이용해 구현할 수 있다.
QueueLinkedListArrayDeque를 이용해 구현할 수 있다.

🫧 Stack

Java의 Stack 클래스와, ArrayDeque를 이용해 구현할 수 있다.

✏️ 생성 : Stack() / ArrayDeque()

val stack: Stack<Int> = Stack()
val arrayDequeStack: ArrayDeque<Int> = ArrayDeque()

✏️ 삽입 : push() / offer()

stack.push(1)
stack.push(2)

arrayDequeStack.offer(1)

✏️ 반환 : peek() / peekLast()

val topElement = stack.peek() // 맨 위 요소 반환 (제거하지 않음)

val topElement = stack.peekLast() // 맨 위 요소 반환 (제거하지 않음)


🫧 Queue

LinkedListArrayDeque를 이용해 구현할 수 있다.
ArrayDeque는 메모리 할당과 관리에 더 효율적이다. 하지만 ArrayDequesms null 값을 허용하지 않는다.

✏️ 생성 : LinkedList(), ArrayDeque()

val linkedQueue: LinkedList<Int> = LinkedList()
val arrayDequeQueue: ArrayDeque<Int> = ArrayDeque()

✏️ 삽입 : offer()

큐의 끝에 요소를 삽입한다.
삽입이 성공하면 true를 반환하고, 큐의 용량 제한 때문에 실패하면 false를 반환한다.

linkedQueue.addLast(1)       // LinkedList에 요소 추가
linkedQueue.offer(2)

arrayDequeQueue.addLast(1)   // ArrayDeque에 요소 추가
arrayDequeQueue.offer(2)

✏️ 반환 및 제거 : poll()

큐의 앞에 있는 요소를 제거하고 반환한다.
큐가 비어 있으면 null을 반환한다.

val linkedRemoved = linkedQueue.poll()         // 맨 앞 요소 제거 및 반환
val arrayDequeRemoved = arrayDequeQueue.poll() // 맨 앞 요소 제거 및 반환

✏️ 반환 : peek()

큐의 앞에 있는 요소를 반환하지만 제거하지는 않는다.
큐가 비어 있으면 null을 반환한다.

val linkedPeek = linkedQueue.peek()         // 맨 앞 요소 확인 (제거하지 않음)
val arrayDequePeek = arrayDequeQueue.peek() // 맨 앞 요소 확인 (제거하지 않음)

0개의 댓글