24년 11월 이전/레거시-알고리즘(3)

[프로그래머스 1단계] 알고리즘 13. x만큼 간격이 있는 n개의 숫자

Gurumee 2018. 3. 23. 12:01
반응형

문제 출처는 프로그래머스 알고리즘 연습 에서 볼 수 있습니다!(https://programmers.co.kr/learn/challenges)


알고리즘 13. x만큼 간격이 있는 n개의 숫자

number_generator함수는 x와 n을 입력 받습니다.
2와 5를 입력 받으면 2부터 시작해서 2씩 증가하는 숫자를 5개 가지는 리스트를 만들어서 리턴합니다.

[2,4,6,8,10]

4와 3을 입력 받으면 4부터 시작해서 4씩 증가하는 숫자를 3개 가지는 리스트를 만들어서 리턴합니다.
[4,8,12]

이를 일반화 하면 x부터 시작해서 x씩 증가하는 숫자를 n개 가지는 리스트를 리턴하도록 함수 number_generator를 완성하면 됩니다.

def number_generator(x, n):
# 함수를 완성하세요
return []

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(number_generator(3,5))


풀이:

이 문제의 핵심은 x의 배수를 n개의 원소로 가진 리스트를 만드는 것이다. 이것만 알고 있으면 금방 문제를 풀 수 있다. 가령 문제의 입력에서 x=3 n=5라면 [3*1, 3*2, 3*3, 3*4, 3*5] 인 리스트를 만들면 된다. 이것을 풀 때 주의할 점은 range(1, n) 이 1~n-1까지 순회한다는 것이다. 따라서 코드는 다음과 같다.

def number_generator(x, n):
# 함수를 완성하세요
return [(i * x) for i in range(1, n+1)]


즉 range(1, n+1)까지 범위를 지정하면 1~n만큼 순회를 한다. 이제 프로그래머스 1단계가 끝이 보인다 하하하

728x90
반응형