[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
로 큐가 비어있는지 확인할 수 있습니다.
코틀린을 사용하여 큐 알고리즘을 작성하면 다양한 상황에서 효과적으로 데이터를 다룰 수 있습니다.
참고 문헌: