관리 메뉴

나만을 위한 블로그

[Algorithm] 프로그래머스 - 조건에 맞게 수열 변환하기 3 (Kotlin) 본문

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

[Algorithm] 프로그래머스 - 조건에 맞게 수열 변환하기 3 (Kotlin)

참깨빵위에참깨빵_ 2024. 7. 4. 19:10
728x90
반응형
정수 배열 arr, 자연수 k가 주어진다. k가 홀수면 arr의 모든 원소에 k를 곱하고, 짝수면 arr의 모든 원소에 k를 더한다. 이런 변환을 마친 후의 arr을 리턴하는 함수를 완성하라

 

 

매개변수로 받은 arr 안의 값은 직접 수정할 수 없다. 그래서 copyOf()로 arr을 복사한 다음 반복문과 홀짝 구분 로직을 섞어서 풀면 된다.

 

class Solution {
    fun solution(arr: IntArray, k: Int): IntArray {
        val answer: IntArray = arr.copyOf()
        for (i in answer.indices) {
            if (k % 2 == 0) {
                answer[i] = answer[i] + k
            } else {
                answer[i] = answer[i] * k
            }
        }
        return answer
    }
}

 

위 코드는 map을 쓰면 아래처럼 더 간결하게 줄일 수 있다.

 

class Solution {
    fun solution(arr: IntArray, k: Int) = arr.map { if (k % 2 == 0) it + k else it * k }
}

 

반응형
Comments