본문 바로가기
Algorithm

배열을 오른쪽으로 N번 회전하기

by ByteBridge 2023. 10. 15.
반응형
fun rotateArrayRight(arr: IntArray, n: Int): IntArray {
    val len = arr.size
    val rotatedArr = IntArray(len)
    for (i in arr.indices) {
        rotatedArr[(i + n) % len] = arr[i]
    }
    return rotatedArr
}

fun main() {
    val s = intArrayOf(1, 2, 3, 4, 5)
    val n = 2
    val rotatedS = rotateArrayRight(s, n)
    println(rotatedS.joinToString(", "))
}

코드 설명:

먼저, rotateArrayRight라는 함수를 정의하여 구현을 시작합니다. 이 함수는 정수 배열 arr와 정수 n을 매개변수로 받습니다

다음으로, rotatedArr라는 새로운 배열을 생성하여 회전된 배열의 값을 저장합니다

    val len = arr.size
    val rotatedArr = IntArray(len)

for 루프를 사용하여, 각 원소를 오른쪽으로 n의 위치만큼 이동시킵니다. 여기서 (i + n) % len 연산은 회전으로 인해 인덱스가 배열의 크기를 초과하는 것을 방지합니다.

    for (i in arr.indices) {
        rotatedArr[(i + n) % len] = arr[i]
    }

마지막으로, 회전된 배열 rotatedArr을 반환합니다

    return rotatedArr
}

예제

이제 이 함수를 사용하여 예제 배열을 회전해봅니다

fun main() {
    val s = intArrayOf(1, 2, 3, 4, 5)
    val n = 2
    val rotatedS = rotateArrayRight(s, n)
    println(rotatedS.joinToString(", "))
}

배열 [1, 2, 3, 4, 5]를 오른쪽으로 2번 회전하면 [4, 5, 1, 2, 3]이 됩니다. 결과가 올바른지 확인하려면 코드를 실행해보세요!마치며

이 포스트에서는 Kotlin을 사용하여 배열을 오른쪽으로 N번 회전하는 간단한 방법을 알아보았습니다. 기본적인 배열 인덱싱과 모듈로 연산자를 활용하여 이 문제를 효과적으로 해결할 수 있습니다. 다양한 상황에서 이 코드를 활용하거나 변형하여 사용할 수 있을 것입니다

반응형

'Algorithm' 카테고리의 다른 글

중복문자 제거  (0) 2023.10.29
문자열 뒤집기  (0) 2023.10.29
큐 2개로 스택 구현하기 with Kotlin  (0) 2023.10.15
두 개의 스택을 사용하여 큐 구현하기  (1) 2023.10.15
중괄호 짝 맞추기 문제 풀이  (0) 2023.10.15