코딩테스트 연습 - 짝수는 싫어요 | 프로그래머스 스쿨 (programmers.co.kr)
문제 설명
정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 100
입출력 예
n | result |
10 | [1, 3, 5, 7, 9] |
15 | [1, 3, 5, 7, 9, 11, 13, 15] |
내 풀이
def solution(n):
answer = []
for num in range(1, n+1):
if (num%2==1):
answer.append(num)
return answer
풀이
def solution(n):
return [i for i in range(1, n+1, 2)]
★
파이썬의 리스트가 특이한 점은 리스트 안에 for 반복문과 if 조건문을 사용할 수 있다는 점입니다. 이렇게 리스트 안에 식, for 반복문, if 조건문 등을 지정하여 리스트를 생성하는 것을 리스트 컴프리헨션(list comprehension)이라고 합니다.
리스트 표현식은 다음과 같이 리스트 안에 식, for 반복문을 지정합니다. 문법이 다소 복잡해 보이지만 여러 줄의 코드를 한 줄로 줄일 수 있고, 익숙해지면 크게 어렵지 않습니다.
- [식 for 변수 in 리스트]
- list(식 for 변수 in 리스트)
>>> a = [i for i in range(10)] # 0부터 9까지 숫자를 생성하여 리스트 생성
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> b = list(i for i in range(10)) # 0부터 9까지 숫자를 생성하여 리스트 생성
>>> b
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
리스트 안에 식, for, 변수, in, 리스트 순서로 들어있지만 뒤에서 앞으로 읽으면 간단합니다. 즉, range(10)으로 0부터 9까지 생성하여 변수 i에 숫자를 꺼내고, 최종적으로 i를 이용하여 리스트를 만든다는 뜻입니다.
'코딩테스트 > programmers (python)' 카테고리의 다른 글
python/ Lv.0 중복된 숫자 개수 (0) | 2023.01.01 |
---|---|
python/ Lv.0 머쓱이보다 키 큰 사람 (0) | 2023.01.01 |
python/ Lv.0 양꼬치 (0) | 2023.01.01 |
python/ Lv.0 최빈값 구하기 (0) | 2022.12.31 |
python/ Lv.0 중앙값 구하기 (0) | 2022.12.30 |