본문 바로가기

Develop/Algorithm

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

반응형

✏️ 문제

 x만큼 간격이 있는 n개의 숫자

 

✏️문제 설명

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

 

✏️제한사항

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

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

 

✏️입출력 예

2 5 [2,4,6,8,10]
4 3 [4,8,12]
-4 2 [-4, -8]

1) 시도 : 85.7점

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

2) 재시도 : 100점

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

3) 다른사람의 풀이

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;

    }
}

4) 셀프 피드백

다른 사람의 풀이처럼 풀려던 시도도 있었는데, 인덱스가 0번일 때 어떻게 처리할지 고민 했었다. 그냥 포문 밖에서 0번만 넣어줘도 되는 생각을 못했다. 첫 시도에서 왜 에러가 나나 좀 고민을 했다. 정수 타입 곱하기 정수 타입을 하면 정수이기 때문에 큰 숫자 롱 타입을 담을 수 없다는 것을 눈치채서 형 변환을 시켜줫더니 결과가 잘 나왔다. 

 

5) 참고

 

2. 자바 변수와 자료형 (3) byte, short, int, long - 삐멜 소프트웨어 엔지니어

이 포스트에서는 자바 프로그래밍 언어의 기본 자료형인 char, boolean, byte, short, int, long, float, double중에서 숫자를 표현 할 수 있는 byte, short, int, long에 대해 알아보도록 하겠다.  예상 독자 자바를

cselabnotes.com

 

 

 
 
 
 
반응형