본문 바로가기

알고리즘 문제풀이/문제풀이

[python] 프로그래머스 Level.1 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]

 

문제 풀이

계속 새로운 x값을 계산하는 형태가 아닌,

이전 x값에 x를 더하는 방식으로 계산 속도를 줄이고자 하였다.

 

그러나 n이 1000이하의 비교적 적은 숫자?이고,

계산식이 간단해서

차이가 크지 않았고, 더 간결한 코드가 깔끔하지 않았나 싶다.

 

solution.py

나의 풀이

def solution(x, n):
    answer = []
    a = 0
    
    for i in range(n): # n번만큼 반복, i는 0부터 n-1
        a += x; # x만큼 더하기
        answer.append(a)
    
    return answer

다른 풀이

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

출처: https://programmers.co.kr/learn/courses/30/lessons/12954/solution_groups?language=python3