[kotlin] 코틀린으로 스택 알고리즘 구현하기
스택(Stack)은 데이터를 후입선출(LIFO) 방식으로 저장하는 자료구조입니다. 새로운 데이터가 쌓일 때마다 가장 위에 쌓이게 됩니다. 코틀린을 사용하여 스택 알고리즘을 구현해보겠습니다.
스택 구현하기
class Stack {
private val items: MutableList<Int> = mutableListOf()
fun push(item: Int) {
items.add(item)
}
fun pop(): Int? {
if (isEmpty()) {
return null
}
return items.removeAt(items.size - 1)
}
fun peek(): Int? {
if (isEmpty()) {
return null
}
return items[items.size - 1]
}
fun isEmpty(): Boolean {
return items.isEmpty()
}
}
위의 코드는 정수 값을 저장할 수 있는 스택을 구현한 것입니다. push
메서드는 스택에 새로운 항목을 추가하고, pop
메서드는 스택에서 항목을 제거하고 반환합니다. peek
메서드는 스택의 맨 위에 있는 항목을 반환하며, isEmpty
메서드는 스택이 비어 있는지 확인합니다.
스택 사용하기
fun main() {
val stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)
println(stack.pop()) // 3
println(stack.peek()) // 2
println(stack.isEmpty()) // false
}
위의 예제에서는 Stack
클래스를 사용하여 스택에 값을 추가하고 제거하는 방법을 보여줍니다.
이제 코틀린으로 간단한 스택 알고리즘을 구현하는 방법을 알게 되었습니다. 스택은 자료구조 이론을 이해하고 구현하는 데 중요한 역할을 합니다. 실제 프로그래밍에서 스택을 사용하여 다양한 문제를 해결할 수 있을 것입니다.