[JAVA/프로그래머스] 연습문제: x만큼 간격이 있는 n개의 숫자

👀 문제

https://programmers.co.kr/learn/courses/30/lessons/12954

👊 도전

1. 설계

  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. 설명

  1. x의 곱이 오버플로우가 발생할 수 있으므로 long으로 형변환 후 저장한다.

👏 해결 완료!

처음에는 x i+1을 곱한 결과에 long 형변환을 해주었는데 그러면 실패한다. 아마 int*int형 곱으로 이미 오버플로우가 발생하여 잘못 된 값을 long으로 변환해서 그런 것 같다. 처음부터 x를 long으로 큰 곳에 할당해놓고 i+1을 곱하니 성공하였다.