본문 바로가기
프로그래머스 Algorithm

[프로그래머스] x만큼 간격이 있는 n개의 숫자 Kotlin

by Echung 2023. 11. 10.

안녕하세요. 이번에는 프로그래머스 x만큼 간격이 있는 n개의 숫자를 풀어보려고 합니다.

 

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

 

프로그래머스

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

programmers.co.kr


Problem

함수 solution은 정수 x와 자연수 n을 입력받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해 주세요.

[제한 사항]

○ x는 -10000000 이상, 10000000 이하인 정수입니다.

○ n은 1000 이하인 자연수입니다.

사진 1. 입출력 예

Solution

class Solution {
    fun solution(x: Int, n: Int): LongArray {
        var answer = longArrayOf()
        var value = x.toLong()

        for (i in 0 until n) {
            answer += value
            value += x
        }

        return answer
    }
}

 for문을 사용하여 0부터 n까지 반복하면서 x의 값을 answe에 넣는 방식으로 문제를 풀 수 있었다. 그리고 다른 사람들의 접근 방식이 궁금하여 다른 사람의 풀이를 봤는데 한 줄로 만든 코드를 보게 되어서 공부용으로 첨부해 본다.

 

1. 다른 사람 코드

class Solution {
    fun solution(x: Int, n: Int): LongArray {
        
        return LongArray(n) { x.toLong() * (it + 1) }
    }
}

  n 크기의 배열을 선언해 주면서 n의 배열 안에 람다식으로 it의 값을 증가시키면서 x 값을 곱하는 방식으로 푸는 모습을 확인할 수 있었다. for문보다 가독성이 좋아 보인다. 앞으로 이런 방식으로도 문제를 접근해 봐야겠다.


Performance

1. 내가 작성한 코드 2. 다른 사람 코드
실행 결과
실행 결과
 

 확실히 불필요한 변수를 할당하지 않고 반복문을 사용하지 않는 다른 사람의 코드가 실행 속도가 빠른 것을 실행 결과를 통해서 알 수 있었다. 

반응형