반응형
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(long x, int n) {
long[] answer = new long[n];
if(n >= 1000) return answer;
long temp = x;
for(int i=0; i<answer.length; i++){
answer[i] = x;
x += temp;
}
return answer;
}
}
해설
처음에 주어진대로 x를 int형으로 했는데, 케이스2개르 통과하지 못해서 계속 오류가 났다.
아무리 생각해도 코드상 문제가 없는데, 통과를 하지 못하길래 고민을 한 결과!!!
x값에 1000만이 들어오는경우 n값에 따라서 배열의 길이가 생성이 될때 x값은 x값만큼 증가를 하면서 배열의 다음 인덱스에 값이 들어가는 과정에서 int형 범위를 넘어가는 과정이 생기기 때문에 버퍼오버플로우가 발생한다. 그래서 x를 long형으로 바꿔주었다.
출처: 프로그래머스, https://programmers.co.kr/learn/courses/30/lessons/12954
반응형
'코딩 테스트 > Java' 카테고리의 다른 글
[프로그래머스]Level 1 : 문자열을 정수로 바꾸기(JAVA) (0) | 2021.05.18 |
---|---|
[프로그래머스]Level 1 : 짝수와 홀(JAVA) (0) | 2021.05.17 |
[프로그래머스]Level 1 : 행렬의 덧셈(JAVA) (0) | 2021.05.17 |
[프로그래머스]Level 1 : 콜라츠 추측(JAVA) (0) | 2021.05.16 |
[프로그래머스]Level 1 : 직사각형 별찍기(JAVA) (0) | 2021.05.16 |