👀 문제
https://programmers.co.kr/learn/courses/30/lessons/12954
👊 도전
1. 설계
- 행렬 각 자리끼리 더한다.
2. 구현 (성공 코드)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
*
* @author HEESOO
*
*/
class Solution {
public long[] solution(int x, int n) {
long[] answer = {};
answer=new long[n];
for(int i=0;i<n;i++){
answer[i]=(long)x*(i+1);
}
return answer;
}
}
3. 결과
🤟 성공 🤟
4. 설명
- x의 곱이 오버플로우가 발생할 수 있으므로 long으로 형변환 후 저장한다.
👏 해결 완료!
처음에는 x i+1을 곱한 결과에 long 형변환을 해주었는데 그러면 실패한다. 아마 int*int형 곱으로 이미 오버플로우가 발생하여 잘못 된 값을 long으로 변환해서 그런 것 같다. 처음부터 x를 long으로 큰 곳에 할당해놓고 i+1을 곱하니 성공하였다.