코딩 테스트

[프로그래머스] Lv1 x만큼 간격이 있는 n개의 숫자 - Java

그리득 2024. 3. 7. 15:34
728x90

문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/12954

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 설명

함수 solution은 정수 x와 자연수 n을 입력 받아, 
x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다.
다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.

 

제한 조건

  • x는 -10000000 이상, 10000000 이하인 정수입니다.
  • n은 1000 이하인 자연수입니다.

입출력 예

x n answer
2 5 [2,4,6,8,10]
4 3 [4,8,12]
-4 2 [-4,-8]

 

수정 전 코드

테스트 12번까진 정답처리가 됐는데 13번,14번만 안되서 잠깐 고민을 해봤다

그러다 반환 타입이 long인 것을 보고 연산식을 보니 x가 int형인 것을 확인했다.

만약 x가 10000000라면 i가 늘어날수록 21억을 넘어서기 때문에 오버플로우가 발생할 것으로 예상.

오버플로우 때문에 정답처리가 안된 것으로 판단해서 수정 시작.

 

수정 후 코드

데이터 타입이 다른 수를 연산을 할 때 더 큰 값으로 자동 변환하기 때문에 i+1 쪽에 long을 넣고 문제 해결.

int * long -> 결과값 long 으로 반환

 

사담

반환 타입이 long으로 돼 있는 것을 보고 눈치 챘어야 됐는데 문제를 너무 안일하게 풀어버렸다...

다음엔 조금 더 신중하게 반환타입과 조건들을 분석해야겠다.