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

0

🐶 코딩테스트

목록 보기
5/13
post-thumbnail

🔷 🖱️여기 클릭하면 문제로 이동해요!

이 글은 문제를 정리하고 저의 풀이를 보여드리는 거예요. 실제로 문제를 보고 풀어보세요. 클릭! 클릭! 해보세요! 🖱️

🔷 문제

함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다.
x는 -10000000 이상, 10000000 이하인 정수입니다.
n은 1000 이하인 자연수입니다.

✅ 입출력 예시

🔷 내가 만든 로직

✅ solution()

🔷 내가 만든 코드

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

        for(int answerIndex = 0; answerIndex < n; answerIndex++) {
            int multiplyNumber = answerIndex + 1;
            answer[answerIndex] = x * multiplyNumber;
        }

        return answer;
    }
}

🔷 나의 코드 결과

🔷 틀린이유


❗자료형 때문!!

return될 answer[]long자료형만 들어갈 수 있다.
인수 xint로 한다면 제한되는 범위 끝에 다다를 때 answer[]에 들어가야 하는 수를 int자료형은 담을 수 없게 될 것이다. 그래서 long자료형으로 처음부터 x를 받아야한다.

(이유를 도저히 모르겠어서 해매다가 `다른사람의 풀이`를 보고서야 알게되었다...🐶)

🔷 다시 도전하는 코드

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

        for(int answerIndex = 0; answerIndex < n; answerIndex++) {
            int multiplyNumber = answerIndex + 1;
            answer[answerIndex] = x * multiplyNumber;
        }

        return answer;
    }
}

🔷 다시 도전한 결과

profile
몇 번을 넘어져도 앞으로 계속 나아가자

0개의 댓글