아주 쉬워서 당당하게 풀었더니 fail
//Fail
class Solution {
public long[] solution(int x, int n) {
long[] answer = {};
answer = new long[n];
answer[0] = x;
for(int i=1; i<n; i++){
answer[i] = x+(i*x);
}
return answer;
}
}
테스트 케이스 13,14가 계속 fail이 떴는데 자료형이 달라서 오버플로우가 나서 fail이었던 것이다.
해결방법은 2가지
1. 따로 변수를 만들어서 x를 long 타입으로 바꿔주거나
2. 그게 귀찮으면 그냥 이전 배열에 있는 값을 가져와서 더하기
//1번
class Solution {
public long[] solution(int x, int n) {
long[] answer = {};
answer = new long[n];
long num = (long)x;
for(int i=0; i<n; i++){
answer[i] = num;
num +=x;
}
return answer;
}
}
//2번
class Solution {
public long[] solution(int x, int n) {
long[] answer = {};
answer = new long[n];
answer[0] = x;
for(int i=1; i<n; i++){
answer[i] = answer[i-1]+x;
}
return answer;
}
}
자료형을 잘 보자
반응형
'PS > 프로그래머스' 카테고리의 다른 글
프로그래머스 문자열 내 p와 y의 개수 JAVA (0) | 2023.03.15 |
---|---|
프로그래머스 두 개 뽑아서 더하기 JAVA (0) | 2022.11.07 |
프로그래머스 K번째수 JAVA (0) | 2021.04.26 |
프로그래머스 크레인 인형뽑기 게임 JAVA (0) | 2021.04.26 |