기초라고 생각되는 것/문제풀이

[Swift] 프로그래머스 - 수열과 구간 쿼리 3 / LV.0, 181924

아렉스_Arex 2023. 11. 1. 01:30
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/181924

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

문제를 보고 고전적인 swap 떠올려서 작성해서 통과하였습니다.

func solution(_ arr:[Int], _ queries:[[Int]]) -> [Int] {
    var swapTemp: Int = 0
    var array = arr
    
    queries.forEach {
        swapTemp = array[$0[0]]
        array[$0[0]] = array[$0[1]]
        array[$0[1]] = swapTemp
    }
    return array
}

 

하지만 Swift에서는 swap 에 대한 메소드를 지원해줍니다.

 

func solution(_ arr:[Int], _ queries:[[Int]]) -> [Int] {
    var array = arr
    
    queries.forEach { array.swapAt($0[0], $0[1]) }
    return array
}

 

swapAt(_:_:)

시간 복잡도는 O(1) 입니다.