프로그래머스 Lv.1 x만큼 간격이 있는 n개의 숫자개발자가 되기까지 (2023.08.16~2024.04.15)/[Algorithm] Programmers ver.Java2023. 12. 4. 22:33
Table of Contents
<1st Try>
class Solution {
public long[] solution(int x, int n) {
long[] answer = new long[n];
for(int i = 1; i <= n; i++) {
answer[i-1] = x * i;
}
return answer;
}
}
테스트 13,14에서 에러가 났다.
아무래도 x, n, i는 int로 들어오고 있고 answer는 long이니까 형태 때문에 에러가 나는 것 같아서
x* i를 long 형태로 형변환을 해주었다.
<Solution>
class Solution {
public long[] solution(int x, int n) {
long[] answer = new long[n];
for(int i = 1; i <= n; i++) {
answer[i-1] = (long) x * i;
}
return answer;
}
}
형변환으로 해결하고 나서 구체적인 이유를 알고 싶어서 찾아보았더니,
연산 결과가 int의 표현 범위를 벗어날 수 있기 때문에
long형태로 변환하면 더 넓은 범위의 정수를 표현할 수 있어서 overflow를 방지할 수 있다고 한다.
728x90
@rlozlr :: 얼렁뚱땅 개발자
얼렁뚱땅 주니어 개발자
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!