[kotlin] 코틀린 집합(Set)을 이용한 큐 자료구조
큐(Queue)는 선입선출(FIFO) 원칙에 따라 데이터를 저장하고 검색하는 자료구조입니다. 코틀린에서는 표준 라이브러리에 Set
을 이용하여 간단한 큐 자료구조를 구현할 수 있습니다.
코틀린 Set
코틀린의 Set
은 순서가 없는 변경 불가능한 컬렉션으로, 중복된 요소를 포함할 수 없습니다. 따라서 Set
을 활용하여 중복을 허용하지 않는 큐 자료구조를 구현할 수 있습니다.
다음은 Set
을 이용하여 큐 자료구조를 구현하는 예제 코드입니다.
class Queue<T>() {
private val set = mutableSetOf<T>()
fun enqueue(item: T) {
set.add(item)
}
fun dequeue(): T? {
val item = set.firstOrNull()
if (item != null) {
set.remove(item)
}
return item
}
fun peek(): T? {
return set.firstOrNull()
}
fun size(): Int {
return set.size
}
fun isEmpty(): Boolean {
return set.isEmpty()
}
}
위 코드에서 enqueue
는 큐에 요소를 추가하고, dequeue
는 가장 먼저 추가된 요소를 제거하며 반환합니다. peek
는 가장 먼저 추가된 요소를 반환하지만 제거하지는 않습니다. size
는 큐에 있는 요소의 개수를, isEmpty
는 큐가 비어 있는지 여부를 반환합니다.
이제 코틀린에서는 Queue
클래스를 사용하여 큐 자료구조를 생성하고 다양한 연산을 수행할 수 있습니다.
이렇게 Set
을 이용하여 큐를 구현하면 중복을 허용하지 않는 간단하고 효율적인 자료구조를 만들 수 있습니다.
결론
코틀린의 Set
을 활용하여 큐 자료구조를 구현하면 코드를 간결하게 유지할 수 있고, 중복된 요소를 효과적으로 제어할 수 있습니다. 이는 프로그래밍의 복잡성을 줄이고 코드의 가독성을 높여줄 수 있습니다. 여기에는 좋은 코딩 습관과 유지보수가 용이한 코드를 작성할 수 있는 장점이 있습니다.
참고 자료
- 코틀린 공식 문서: Kotlin Set
- Baeldung: Kotlin Set
- Kotlin Programming By Example: Kotlin Collections