포시코딩

[프로그래머스][Lv.1] x만큼 간격이 있는 n개의 숫자 본문

자료구조알고리즘/문제풀이

[프로그래머스][Lv.1] x만큼 간격이 있는 n개의 숫자

포시 2022. 12. 23. 15:36
728x90

문제

https://school.programmers.co.kr/learn/courses/30/lessons/12954

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

내 풀이 A

def test(x, n):
    answer = []

    def loop(x, n):
        if n == 0:
            return
        answer.append(x)
        return loop(x+answer[0], n-1)

    loop(x, n)
    return answer

result = test(-4, 2)
print(result)

재귀함수를 적용해보자 하고 작성한 코드.

다른 테스트 다 잘 넘어가다가 마지막 두 테스트에서 런타임 에러가 걸렸다.

재귀하며 추가하는거 말고 다른 방법이 있나 생각해봐야겠다.

 

내 풀이 B

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

그냥 간단하게 for문 돌렸는데 위에서 발생한 런타임 에러도 안걸리고 다 통과됐다.

 

다른 풀이

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

파이썬의 리스트 컴프리헨션을 사용한 코드인데 이 방법에 내가 푼 방법을 합치면

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

이런식으로 풀 수 있다.

 

728x90