본문 바로가기

Java/Java 알고리즘 프로그래머스

[프로그래머스-LEVEL 1] 2. x만큼 간격이 있는 n개의 숫자

반응형
  • x만큼 간격이 있는 n개의 숫자
문제 설명

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

제한 조건

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

입출력 예

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

 

 


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

-> 테스트시 3가지 테스트케이스는 통과하지만, 제출하면 실패하는 테스트케이스가 존재한다.

-> 이유는 x의 자료형이 int이기 때문인데, 제한 조건에 x의 범위가 -10000000 이상, 10000000 이하이므로 long형으로 바꿔준다.

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

 

 

+) 세련된 해답

class Solution {
    public long[] solution(int x, int n) {
        long[] answer = {};
        answer=new long[n];
        answer[0]=x;
        //첫 번째 값을 지정하고
        
        //나머지 값을 이전 값에 추가하는 방식
        for(int i=1;i<n;i++){
            answer[i]=answer[i-1]+x;
        }
        return answer;
    }
    
}

 

반응형