포스트

99. 배열 회전시키기


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import Foundation

func solution(_ numbers:[Int], _ direction:String) -> [Int] {
    
    var arr : [Int] = []
    var answer : [Int] = []
    arr = numbers
    
    if direction == "left" {
        arr.append(arr[0])
        arr.removeFirst()
        return arr
    } else {
        arr.insert(arr[arr.count-1], at:0)
        arr.removeLast()
        return arr
    }

}

한칸씩 이동한다는 것을 배열의 첫번째 인덱스와 마지막인덱스 값을 어떻게 해주느냐에 따라서 달라진다고 생각을 하였다.

그래서 왼쪽으로 이동하는 경우에는 첫번째 인덱스 값을 마지막으로 가게 추가해 준뒤 첫번째 인덱스 값을 제거하는 식으로 하였고,

오른쪽으로 이동하는 경우에는 마지막값을 첫번째로 들어가게 삽입을 해주고, 마지막값을 지우는 식으로 하였다.

간단한 코드를 보니 한번에 처리하였다.

처음에 나도 삼항연산자를 통해 한줄로 처리하고 싶었지만 능력 부족으로 하지 못했다.

다른코드

1
2
3
4
5
6
7
8
import Foundation

func solution(_ numbers:[Int], _ direction:String) -> [Int] {
    var nums = numbers
    direction == "right" ? nums.insert(nums.removeLast(), at: 0) : nums.append(nums.removeFirst())
    return nums
}

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.