관리 메뉴

나만을 위한 블로그

[Algorithm] 프로그래머스 - 배열의 길이에 따라 다른 연산하기 (Kotlin) 본문

알고리즘 문제 풀이/프로그래머스

[Algorithm] 프로그래머스 - 배열의 길이에 따라 다른 연산하기 (Kotlin)

참깨빵위에참깨빵 2024. 6. 28. 20:01
728x90
반응형
정수 배열 arr, 정수 n이 매개변수로 주어진다. arr의 길이가 홀수면 arr의 모든 짝수 인덱스 위치에 n을 더한 배열, 짝수면 arr의 모든 홀수 인덱스 위치에 n을 더한 배열을 리턴하는 함수를 완성하라

 

 

배열의 길이를 2로 나눈 나머지가 0인지 여부에 따라 홀짝을 구분한 뒤, 조건에 맞춰 특정 인덱스들의 값을 바꿔주기만 하면 된다.

 

class Solution {
    fun solution(arr: IntArray, n: Int): IntArray {
        val length = arr.size
        val result = arr.copyOf()

        if (length % 2 == 1) {
            for (i in result.indices step 2) {
                result[i] += n
            }
        } else {
            for (i in 1 until length step 2) {
                result[i] += n
            }
        }

        return result
    }
}

 

for문을 사용하고 "step 2"를 쓰면 배열의 인덱스를 2씩 증가시킨다.

홀수와 짝수들을 나열하면 모두 2씩 증감하는 등차수열로 볼 수 있어서(1-3-5, 2-4-6), 이렇게 한 후 copyOf()로 복사한 arr의 홀짝 인덱스 별로 값을 더하면 된다.

반응형
Comments