프로그래머스 문제풀이/Level 1

x만큼 간격이 있는 n개의 숫자 (자바, Java)

뮤츠 2022. 12. 17. 02:21

 

문제가 쉬워보였으나, 간과한 부분이 있었다.

  • x는 충분히 크다. n은 크지 않지만, 곱하면 꽤 크다. 그래서 둘이 곱하면 int범위 (대략 +-21억)을 초과한다.
  • 따라서 long으로 적절히 cast해줘야하는데, 주의할 점은 (long)int * int는 OK,

(long)(int*int)는 cast 이전에 두 수의 곱이 int로 한번 반환되므로 에러가 발생한다.

class Solution {
    public long[] solution(int x, int n) {
        long[] answer = new long[n];
        for (int i=0; i<n; i++) {
            answer[i] = (long)x*(i+1);
        }
        return answer;
    }
}