함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
이렇게 풀이하니 x가 0일 때 처리를 제대로 못해서인지 케이스 중 2개는 통과 실패했고 하나는 런타임 에러가 났다. 코드를 조금 더 간단히 만들면서도 x가 양수인지, 음수인지, 0인지 관계 없이 리스트를 리턴할 수 있도록 만들고자 했다.
class Solution {
public long[] solution(int x, int n) {
long[] answer = new long[n];
int idx = 0;
if(x > 0){
for(int i=x; i<=x*n; i+=x){
answer[idx++] = i;
}
}else{
for(int i=x; i>=x*n; i+=x){
answer[idx++] = i;
}
}
return answer;
}
}
인덱스 변수를 따로 썼던 오답과 달리, iterator인 i를 그대로 인덱스 값에 사용하기로 했다. 그렇게 하면 x를 n과 곱해서 전체 범위의 값을 복잡하게 구할 필요 없이 n-1개까지 배열에 담을 수 있게 범위가 정해진다.
그 다음, answer[i]에 값을 대입해줄 때, x에 iterator를 곱해 x만큼 값이 증가하게 한다. 중요한 건 0부터 시작하는 iterator의 값에 +1을 해 보정을 해주어야 한다는 점이다.
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;
}
}
