본문 바로가기
코딩테스트 연습

x만큼 간격이 있는 n개의 숫자 풀이 - Lv. 1

by 신재은👩🏼‍💻 2024. 4. 25.

이 문제는 어려운 문제는 아닌데

tricky한 부분이 있어서 여기에 기록을 남긴다.

질문하기에서 힌트를 찾지 못 했다면 난 여전히 이거 못 풀고 있었을 것 같다.

 

왜 내 코드가 테스트 13, 테스트 14에서 자꾸 걸리는가?

 

그건 바로 int argument를 long으로 안 바꿔서 그렇다.

 

리턴을 long[]으로 하라고 해서, 그 안의 요소도 long으로 넣어야 하는 게 테스트 케이스 13, 14인 것 같다.


import java.util.*;
import java.util.stream.*;

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


위 코드를 더 줄일 수 있을까?

 

import java.util.stream.LongStream;

class Solution {
    public long[] solution(int x, int n) {
        return LongStream.rangeClosed(1, n)
                         .map(i -> i * x)  // i는 1부터 n까지, 각 i에 x를 곱함
                         .toArray();       // 결과를 배열로 반환
    }
}

 

이렇게 하면 된다.

Long 스트림이기 때문에 캐스팅 안 해도 된다.

'코딩테스트 연습' 카테고리의 다른 글

가운데 글자 가져오기  (0) 2024.05.04
없는 숫자 더하기  (0) 2024.05.02
하샤드 수 풀이 - 프로그래머스 Lv. 1  (0) 2024.04.25
정사각형으로 만들기  (0) 2024.04.25
소인수분해  (0) 2024.04.24