[Codility] 2. CyclicRotation

Donghee Lee·2022년 3월 15일
0

Algorithm

목록 보기
2/17
post-thumbnail

문제 링크
CyclicRotation

문제 요약
주어진 배열 A의 인덱스를 한 칸씩 옆으로 밀어내고, 마지막 인덱스의 경우는 첫 번째 인덱스로 옮기는 문제
K번만큼 반복

요구사항
K번 밀어냈을 때 최종으로 보여지는 배열 A를 리턴

import Foundation
import Glibc

public func solution(_ A : inout [Int], _ K : Int) -> [Int] {
    var temp: Int = 0
    for _ in 0..<K {
        for i in (0..<A.count).reversed() {
            if(i == A.count-1) {
                temp = A[i]
            } else {
                A[i+1] = A[i]
            }

            if(i == 0) {
                A[i] = temp
            }
        }
    }
    return A
}

문제 자체는 쉽다
근데 여기서 또 생각한 건 배열 A의 count만큼 K번 돌린다고 했을 땐 배열 자체가 가장 처음 모습과 동일하다.
바로 끝날 수 있게 맨 앞에 추가하면 더 좋을듯..

profile
Better than Yesterday

0개의 댓글