문제 설명
함수 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] |
✅SOL_1
1
2
3
4
5
6
7
|
def solution(x, n):
answer = [x]
s = x
for i in range(1,n):
x += s
answer.append(x)
return answer
|
cs |
x부터 시작해서 증가하는 값을 리스트에 담아야하기 때문에 answer리스트에 x값을 포함하여 선언한다. 초기 x값을 변수 s에 저장해 놓고 for문으로 간다. 1부터 n-1까지 반복하는 for문에서 초기x값인 s가 x에 더해지고 더해진 값은 answer리스트에 append된다.
✅SOL_2
1
2
|
def solution(x, n):
return [i * x + x for i in range(n)]
|
cs |
더 간단한 풀이이다. 따로 리스트나 변수를 선언할 필요없이 List Comprehension을 통해 바로 return하는 방법이다.
0부터 n-1까지의 i를 통해 < i * x + x >식을 작성하여 문제의 리스트를 만들 수 있다.
파이썬 Comprehension은 iterable(반복가능한) 객체를 생성하는데 유용한 기능이다. 위의 문제처럼 반복되는 조건이나 특정한 조건이 있는 경우 만족하는 객채를 쉽게 생성할 수 있다. List Comprehension, Set Comprehension,Dict Comprehension이 있다.
List Comprehension
[i * 3 for i in range(1,11)]
위의 예제는 range(1, 11) 즉 1부터 10까지의 범위에 있는 각 i에 3을 곱하여 리스트에 저장하는 코드이다. 출력은 구구단 3단인
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30]이다.
각 숫자에 3이 곱해진 리스트와 같이 특정한 조건을 적용해야할 때 유용하다
'Python 공부기록' 카테고리의 다른 글
Python _ 평균구하기 (0) | 2021.03.02 |
---|---|
Python _ 행렬의 덧셈 (2) | 2021.02.26 |
Python _ 핸드폰 번호 가리기 (0) | 2021.02.25 |
Python3 _ 직사각형 별찍기 (0) | 2021.02.23 |
Python 공부기록 (1) | 2020.11.03 |