CS
Deque
끝까지 처음처럼
2023. 1. 16. 18:12
728x90
코틀린에서 Deque 사용방법
1. "import java.util.ArrayDeque" 를 표기한다.
2. var Deque = ArrayDeque<Int>()
코틀린에서의 Deque 자주 사용할거 같은 함수 정리(필자 기준)
1.값 추가 및 삭제하기
import java.util.ArrayDeque
fun main(){
var Deque = ArrayDeque<Int>()
//정수 앞에서부터 추가하기
for(i in 1 .. 5){
Deque.addFirst(i)
}
println("정수 앞에서부터 추가하기: ${Deque}")
//실행결과
//정수 앞에서부터 추가하기: [5, 4, 3, 2, 1]
//반대로 하고 싶을 경우는 addLast() 사용
// 뒤에서부터 삭제하기
for(i in 1 .. 5){
Deque.removeLast()
println("삭제값:${i} ${Deque}")
}
// 삭제값:1 [5, 4, 3, 2]
// 삭제값:2 [5, 4, 3]
// 삭제값:3 [5, 4]
// 삭제값:4 [5]
// 삭제값:5 []
// 반대로 하고 싶을 경우는 removeFirst()를 사용
}
2. pollFirst() 함수 사용방법
import java.util.ArrayDeque
fun main(){
//pollFirst() 함수 알아보기
var Deque2 = ArrayDeque<Int>()
for(i in 1 .. 5){
Deque2.add(i)
}
println("Deque2 = ${Deque2}")
var Deque3 = ArrayDeque<Int>()
println("Deque3 = ${Deque3}")
for(i in 1 .. 5){
Deque3.add(Deque2.pollFirst())
println("Deque2 = ${Deque2}")
println("Deque3 = ${Deque3}")
}
}
//실행결과
// Deque2 = [1, 2, 3, 4, 5]
// Deque3 = []
// Deque2 = [2, 3, 4, 5]
// Deque3 = [1]
// Deque2 = [3, 4, 5]
// Deque3 = [1, 2]
// Deque2 = [4, 5]
// Deque3 = [1, 2, 3]
// Deque2 = [5]
// Deque3 = [1, 2, 3, 4]
// Deque2 = []
// Deque3 = [1, 2, 3, 4, 5]
// -> pollFirst() 는 가장 앞에 있는 자료를 넘기면서 자신의 가장 앞에 있던 자료를 삭제함
// 순서를 반대로 하고싶을때는 pollLast() 사용하면 됨
3. peekFirst() 사용 방법
import java.util.ArrayDeque
fun main(){
//pollFirst()는 삭제를 하지만 삭제하지 않고 그냥 값만 확인하고 싶을때는 peekFirst()를 사용한다.
//시간 복잡도를 생각했을때 O(1)의 시간 복잡도를 가진다.
var Deque4 = ArrayDeque<Int>()
for(i in 1 .. 5){
Deque4.add(i)
}
println("Deque4.peekFirst() = ${Deque4.peekFirst()}")
//실행결과
//Deque4.peekFirst() = 1
}
그 외의 함수들을 확인할 수 있는 공식 문서링크
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-array-deque/