[kotlin] 코틀린으로 큐 알고리즘 작성하기

큐(Queue)는 데이터를 선입선출(FIFO, First-In-First-Out) 방식으로 처리하는 자료구조입니다. 코틀린으로 간단한 큐 알고리즘을 작성해보겠습니다.

큐 구현하기

class Queue<T> {
    private val queue = mutableListOf<T>()

    fun enqueue(item: T) {
        queue.add(item)
    }

    fun dequeue(): T? {
        return if (queue.isNotEmpty()) {
            queue.removeAt(0)
        } else {
            null
        }
    }

    fun peek(): T? {
        return queue.firstOrNull()
    }

    fun isEmpty(): Boolean {
        return queue.isEmpty()
    }

    fun size(): Int {
        return queue.size
    }
}

큐 사용 예제

fun main() {
    val queue = Queue<Int>()
    queue.enqueue(1)
    queue.enqueue(2)
    queue.enqueue(3)

    println(queue.dequeue()) // 1
    println(queue.peek()) // 2
    println(queue.size()) // 2
}

위의 코드는 제네릭을 활용하여 임의의 데이터 타입을 저장할 수 있는 큐를 구현한 예제입니다. enqueue로 데이터 추가, dequeue로 데이터 제거, peek로 가장 앞에 있는 데이터 조회, isEmpty로 큐가 비어있는지 확인할 수 있습니다.

코틀린을 사용하여 큐 알고리즘을 작성하면 다양한 상황에서 효과적으로 데이터를 다룰 수 있습니다.

참고 문헌: