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

Digeut·2023년 6월 27일
0

프로그래머스

목록 보기
68/164

❔문제설명

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

⚠️제한사항

x는 -10000000 이상, 10000000 이하인 정수입니다.
n은 1000 이하인 자연수입니다.

❌틀린코드

class Solution {
    public long[] solution(int x, int n) {
        long[] answer = new long[n];
        
        answer[0] = (long)x;
        for(int i = 1 ; i < n ; i++){
            answer[i] = x * n;
        }
        return answer;
    }
}

🙄오류

반복문에서 i에 따른 값이 아닌 answer[i] = x * n 을 실행해서
그냥 계속 xn값만 출력된다. 그리고 answer[0]의 값은 포함되지않았다.

❌틀린코드2

class Solution {
    public long[] solution(int x, int n) {
        long[] answer = new long[n];
        
        answer[0] = (long) x ;
        for(int i = 1 ; i < n ; i++){
            answer[i] = x * i + x;
        }
        return answer;
    }
}

💡코드풀이

class Solution {
    public long[] solution(int x, int n) {
        long[] answer = new long[n];
        
        answer[0] = (long) x ;
        for(int i = 1 ; i < n ; i++){
            answer[i] = ⭐(long)x*(i + 1);
        }
        return answer;
    }
}

⭐부분에서 (long)로 데이터 타입을 변환 해주어야 오버플로(Overflow)가 나지 않는다. x와 n의 값이 매우 커지면 int 타입으로 저장되지 못할 수 있다.

profile
개발자가 될 거야!

0개의 댓글