x만큼 간격이 있는 n개의 숫자
한 줄 요약앞의 값에 x를 계속 더한다. 마지막 값이 최대 100억이라 long이 필요하다.
class Solution {
public long[] solution(int x, int n) {
long[] answer = new long[n];
answer[0]=x;
for(int i=1;i<answer.length;i++){
answer[i]= answer[i-1]+x;
}
return answer;
}
}
| 식 | x = 10,000,000, n = 1000 |
|---|---|
x * n (int끼리) | 1,410,065,408 — 넘침 |
(long)(x * n) | 1,410,065,408 — 넘친 뒤라 늦음 |
(long) x * n | 10,000,000,000 — 곱하기 전에 변환 |
| 제출 코드 마지막 값 | 10,000,000,000 — 누적 변수가 long |
로컬 검증
경계 x 6개 × n 1~1000 + 무작위 20,000 → 26,000개 통과 기댓값: (long) x * (i+1) 곱셈으로 따로 계산