Algorithm/[Python] Programmers

[Python] x만큼 간격이 있는 n개의 숫자 (프로그래머스)

내일은개발천재🎵 2022. 1. 5. 21:12

문제를 보시려면 클릭하세요

더보기

문제 설명

함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.

제한 사항

  • x는 -10000000 이상, 10000000 이하인 정수입니다.
  • n은 1000 이하인 자연수입니다.

입출력 예


나의 코드

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

문제 설명

1) 기본 설명

- 프로그래머스에서 제공하는 기본 함수는 다음과 같습니다.

def solution(x, n):
    answer = []
    return answer

문제에 맞게 solution 함수를 작성하면 된다는 것은 이제 모두 아시죠 ?

매개변수 x와 n에는 제한사항 조건에 맞추어 프로그래머스에서 값을 주게 되고,

저희는 문제에 맞는 값을 return만 시키면 됩니다.

모든 힌트는 문제와 입출력 예를 통해 얻을 수 있습니다.


2) 문제 다가가기 ( 해결과정)

(1) x부터 x만큼 증가하는 배열을 만들어야 한다. (길이는 n)  // 구현해야 할 것 (return에 들어갈 값) 

    => 문제설명을 보고 이해가 어렵다면, 입출력 예를 통해 규칙을 찾는 것도 하나의 방법입니다.

(2) 길이(n)만큼 반복문을 수행하여 x만큼 증가시키자!

(3) for문의 내포를 사용해서 코드를 짧게 만들자!


3) 코드 설명

문제 자체는 어렵지 않으니 for문의 내포를 중심으로 설명하겠습니다.

def solution(x, n):
    answer = [] # 빈 리스트 선언 
    for i in range(1, n+1): # i = 1부터 n까지 반복 실행 (n번)
        answer.append(x*i) # answer 마지막에 x*i 를 삽입
    return answer # 반복문 종료 후 결과 값 반환

가장 기초적인 접근 방식입니다.

왜 range(n)을 사용하지 않는지 궁금하시다면 직접 출력해보는 것을 추천드립니다.

    => 결론적으로 위 방법을 사용하면, i=0부터 n-1까지 실행되기 때문입니다. [x*0, x*1 ... x*(n-1) ]이 담깁니다!


for문의 내포를 사용하여 좀 더 짧게 표현하기

 

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

 

for i in range(1, n+1)을 반복하며 x*i의 값을 리스트에 넣어 반환하는 형태입니다.


제 깃허브 들어오시면, 설명은 없지만 다른 문제들의 코드를 볼 수 있습니다.(README에서 문제를 검색해보세요)

 

GitHub - JIWON1923/Algorithm: studying algorithm with python

studying algorithm with python. Contribute to JIWON1923/Algorithm development by creating an account on GitHub.

github.com


내포 관련 개념 및 문제 입니다. 참고하실 분들은 한 번 읽어보세요!!

 

[ 6087 ] 코드업 6087 : 3의 배수는 통과

< 문제 >  - n을 입력받아 1부터 n까지 출력하는데, 3의 배수는 출력하지 않는다. < 문제 푸는 방법 >  - 반복문과 조건문을 이용하여 해결합니다.  - 반복문을 이용하여 1부터 n까지 출력하는데, 조

zest1923.tistory.com