Programmers/Lv. 1

[Kotlin] Programmers Lv. 1 x만큼 간격이 있는 n개의 숫자

chattymin 2023. 8. 14. 14:31
728x90
반응형

 

https://school.programmers.co.kr/learn/courses/30/lessons/12954

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

Code


class Solution {
    /*
    fun solution(x: Int, n: Int): LongArray {
        var answer = longArrayOf()
        var temp:Long = 0
        repeat(n){
            temp += x
            answer = answer.plus(temp)
        }

        return answer
    }

     */
    fun solution(x: Int, n: Int): LongArray = LongArray(n){x.toLong() * (it+1)}
}

x의 배수를 n번 반복한 Long타입의 Array를 만드는 문제다.

 

정직하게 n번 반복하며 기존 값에 x를 더한 값을 리스트에 저장해주면 정답이 나온다.

하지만, 값을 할당하고 그것을 배열에 넣어주는 과정을 해야한다. 처음부터 배열에 값을 넣어주면 불필요한 반복을 줄일 수 있다.

 

그렇기 때문에 배열을 생성해서 바로 리턴해주는 방법을 사용했다.

LongArray를 n칸 만들어 준다. 그 후 내부 값에 x와 index+1을 곱해서 바로 할당해준다.

 

 

바로 할당해서 보내준다는 아이디어가 유용했다.

당연히 값을 계산하고 하나씩 배열에 넣어줘야한다는 고정관념을 부숴주는 문제였다.

728x90
반응형