- 문제
- 풀이
1. 첫번째 풀이
class Solution {
public long[] solution(int x, int n) {
long[] answer = new long[n];
int tmp = x;
for(int i=0; i<n; i++) {
answer[i] = tmp;
tmp += x;
}
return answer;
}
}
- 나름 잘 풀었다고 생각했는데, long인 것도 캐치하여 잘 풀었는데 왜 틀렸을까..?
- 다시 고민하던중
tmp
를 int로 해준 것이 보여 수정!
2. 두번째 풀이
class Solution {
public long[] solution(int x, int n) {
long[] answer = new long[n];
long tmp = x;
for(int i=0; i<n; i++) {
answer[i] = tmp;
tmp += x;
}
return answer;
}
}
- 정리 : 결론은 이게 맞았다. 숫자가 커질 위험이 있어
long
으로 선언한 배열에 저장할 값이 long
이 아니고 int
였기에 StackOverflow
가 발생할 수 있었다. 문제를 잘 보자!!
출처 : 프로그래머스 LV1 x만큼 간격이 있는 n개의 숫자