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

김재현·2023년 11월 28일
0

알고리즘 풀이

목록 보기
35/89
post-thumbnail
post-custom-banner

문제

정답 코드

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;
    }
}

처음에는 answer[i]= x*(i+1); 이라고만했는데, 실패케이스가 생겼다.
n와 x 모두 int 범위인데 어느 부분에서 실패가 생긴 것 일까...
하다가 이 둘이 곱해지면 오버플로우가 발생하겠구나~ 싶었다.
전체를 괄호해버리면 이미 오버플로우가 일어난 상태이므로, answer[i]=(long) x * (i+1);는 x만 (long) 으로 바꿔준 코드이다.

알고리즘 스터디

스터디의 다른 분께서 '에라토스테네스의 체'라는 것을 이용해서 문제를 풀어오셨다.
처음 보는 부분이라 공부가 좀 필요했지만, 정말 신기하다!

>위키피디아 에라토스테네스의 체

profile
I live in Seoul, Korea, Handsome
post-custom-banner

0개의 댓글