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

문제 설명

함수 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]

내 코드

def solution(x, n): # 첫번째 오답
    answer = []
    if x == 0:
        return answer
    for i in range(x, x*n-1 if x < 0 else x*n+1, x) :
        answer.append(i)
    return answer

단순하게 생각할 때, 문제 그대로 풀려고 range()를 삼항연산자를 써서 answer배열에 넣는 방식으로 했는데, 그 경우 테스트케이스 8번에서 런타임 에러가 났다. 아마 x가 0일 때에 대한 문제가 있지 않을까 싶은데, x가 0일 경우, 0부터 0만큼 증가하는 숫자를 0개 지니는 배열이라 생각했을 때 빈 배열을 return하면 되지 않을까 싶어 x가 0일때에 대한 분기도 추가했지만 여전히 테케 8번에서 문제가 있어 아예 다른 방식으로 시도하기로했다.


두번째 코드

def solution(x, n): 
    return [x*i for i in range(1,n+1)]

두번쨰에서는 굳이 range()를 세번째 인수까지 쓸 필요가 없었고, range()로는 배열에 넣을 숫자의 개수만을 정하고 넣을 원소는 x*i로 연산하여 구하도록하여 배열안에 넣어서 리턴했다.


Written by@[Ykss]
고이게 두지 않고 흘려보내는 개발자가 되자.

GitHubInstagramLinkedIn