문제:
number_generator함수는 x와 n을 입력 받습니다.
2와 5를 입력 받으면 2부터 시작해서 2씩 증가하는 숫자를 5개 가지는 리스트를 만들어서 리턴합니다.
number_generator(2,5) -> [2,4,6,8,10]
4와 3을 입력 받으면 4부터 시작해서 4씩 증가하는 숫자를 3개 가지는 리스트를 만들어서 리턴합니다.
number_generator(4,3) -> [4,8,12]
이를 일반화 하면 x부터 시작해서 x씩 증가하는 숫자를 n개 가지는 리스트를 리턴하도록 함수 number_generator를 완성하면 됩니다.
나의 풀이
def number_generator(x, n): list = [] for i in range(n): list.append(x * (i+1)) return list # 아래는 테스트로 출력해 보기 위한 코드입니다. print(number_generator(3,5))
1. 빈 배열을 만든다.
2. range를 이용하여 사용자가 입력한 두 번째 인자(리스트 요소의 개수) 만큼 반복(for in)한다.
3. range 함수에 의해 0부터 n-1까지의 범위가 만들어졌으며 이는 i에 대입된다.
이제 사용자가 입력한 첫 번째 숫자에 (i+1)를 곱하면 우리가 원하는 답이 나온다.
*만약 i+1가 거슬린다면 range의 범위를 1부터 n+1까지로 바꾸자.
for i in range(1, n+1):
list.append(x * i)
다른 사람의 풀이
def number_generator(x, n): # 함수를 완성하세요 return [i * x + x for i in range(n)] print(number_generator(2, 5))
def number_generator(x, n): t = list(range(x, n*x+1, x)) return t # 아래는 테스트로 출력해 보기 위한 코드입니다. print(number_generator(3,5))
▲개인적으로 추천하고 싶은 코드. range의 인자(시작 값, 끝 값, 증가 값)를 잘 활용했다.