이 문제는 어려운 문제는 아닌데
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 |