강의로 돌아가기
-

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] = (x*(i+1));
      }
  return answer;

}

}

자바로 작성했으며 코드는 이러한데 다 통과되다가 85점에서 멈추고
마지막 2개만 통과가 안되는 이유를 모르겠어서 질문합니다 ㅠㅠ
대체 뭐가 문제일까요..

  • Seungjin  Song
    저랑 완전 같네요..저도 마지막 2개가 안되요 ㅠㅠ
    Seungjin Song―2018.07.22 23:25
  • 김성렬
    저두 똑같이 입력했는데 제한조건 추가해주니 해결 되었어요. 제한조건 일때 반환값은 디폴트값으로 하니 되었어요
    김성렬―2018.08.24 15:03
  • 홍영은
    저같은 경우엔 (int x, int n) -> (long x, int n)으로 변경시키니까 해결되었어요
    홍영은―2018.09.06 13:52
  • 붕어빵
    ㄴ 오 그렇게 하니까 됩니다 ㅎ 감사
    붕어빵―2019.01.09 11:39
1 개의 답변
Yong Seok Bae

answer[i] = (x*(i+1));
=> int 인 x 와 int 인 i+1 을 곱했으니 answer[i] 은 int 가 되겠죠.
작은 숫자일 때는 문제가 없겠지만 int 범위를 넘어서는 수가 되면 원치 않는 값이 들어가겠고요.

answer[i] = (Long.valueOf(x) * (i+1)); 로 바꿔보세요.

  • 황우진
    너무너무 감사합니다. 범위문제인줄 알았는데 최대한 문제에 주어진걸 수정안하는 방향으로 생각했는데.. 굿굿
    황우진―2018.11.12 16:55
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.