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/