프로그래머스_LV.1_x만큼 간격이 있는 n개의 숫자

Dreamer ·2023년 2월 3일
0

코딩테스트 준비

목록 보기
69/93

1. quiz

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

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

2. answer

def solution(x, n):
    if x > 0 :
        return list(range(x,(x*n)+1,x))

    elif x < 0 :
        answer =  list(range((x*n),x+1,-x))
        answer = answer[::-1]
        return answer 
    else :
        return list(0 for i in range(n))
  • x가 양수, 음수, 0일 때 나눠서 코드를 작성함.

3. 코드 수정

def solution (x, n):
    if x != 0:
        return [i for i in range(x, x*(n+1), x)]
    else:
        return list(0 for i in range(n))
  • 음수와 양수 부분을 하나로 합치고, 0인 경우와 아닌 경우 두 가지로 나눠서 코드를 수정함.

4. for, range 응용하기

  • for, range를 확실하게 알고 있지 않아서 음수/양수로 나눠서 코드를 작성하였다. 이번 기회에 확실하게 짚고 넘어가야 할 것 같다.
  • https://dojang.io/mod/page/view.php?id=2242
 for i in range(5, 12):    # 5부터 11까지 반복
     print('Hello, world!', i)
     
 for i in range(0, 10, 2):    # 0부터 8까지 2씩 증가
     print('Hello, world!', i)
  • 숫자를 감소시키려면, 세번째 인수에 '음수'를 확실하게 지정해주어야 하낟. range는 기본 값이 양수 1이기 때문이다.
 for i in range(10, 0, -1):    # 10에서 1까지 1씩 감소
     print('Hello, world!', i)
  • reversed()를 사용하면, 숫자의 순서를 반대로 뒤집을 수 있음.
for i in reversed(range(10)):    # range에 reversed를 사용하여 숫자의 순서를 반대로 뒤집음
     print('Hello, world!', i)    # 9부터 0까지 10번 반복
profile
To be a changer who can overturn world

0개의 댓글