본문 바로가기

알고리즘 테스트 공부

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

🔨 첫번째 작성 코드

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;
            x += x;
        }

        return answer;
    }
}

 

x += x를 하므로서 x만큼 증가하는 게 아니라 이전 값의 두배를 하고 있었다.


🗝️ 두번째 작성 코드

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

        return answer;
    }
}

answer의 0번째에 미리 x라고 선언을 해준 뒤 for문을 실행하였다.
for문에서는 i가 1부터 시작하며 (0번째는 이미 x로 지정을 했으므로 1번째부터 시작) answer의 i번째에 i-1번째의 값 + x를 넣어준다.
그렇다면 i번째 값은 i-1보다 x만큼 차이가 난다!

사실 long으로 형변환을 안해줘도 실행은 되겠지만 기분상 넣어줬다!

'알고리즘 테스트 공부' 카테고리의 다른 글

핸드폰 번호 가리기  (0) 2023.10.20
행렬의 덧셈  (0) 2023.10.18
직사각형 별찍기  (0) 2023.10.16
소수 만들기  (0) 2023.10.15
예산  (0) 2023.10.13