함수 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
로 연산하여 구하도록하여 배열안에 넣어서 리턴했다.