코딩 테스트

[프로그래머스] (Lv.1) x만큼 간격이 있는 n개의 숫자

ImKDM 2022. 8. 30. 00:17
728x90

문제


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

 

 

-  출력 예시  -

정답 코드


<  내 정답 코드  >

class Solution {
    public long[] solution(int x, int n) {
        long[] answer = new long[n];

        for (int i = 0; i < n; i++) {
            answer[i] = ((long) i + 1) * x;
        }
        
        return answer;
    }
}

 

<  타인 답변 코드  >

import java.util.*;
class Solution {
    public static long[] solution(int x, int n) {
        long[] answer = new long[n];
        answer[0] = x;

        for (int i = 1; i < n; i++) {
            answer[i] = answer[i - 1] + x;
        }

        return answer;

    }
}

이것을 주의하자!


-  매개변수 x가 처음엔 int형으로 들어오지만, 이후 int형의 범위를 넘어버릴 수 있다. 따라서 long형으로 형변환 해주는 것이 필요하다!

 

-  x의 값이 한 번씩 더해진다는 관점에서 for문의 알고리즘을 적절히 작성하는 것이 포인트!

 

- 그러나 타인의 정답 코드에서 본 '바로 직전의 값' + 'x값'이라는 규칙도 매우 깔끔하다..!