문제 설명
정수 n과 정수 배열 numlist가 매개변수로 주어질 때, numlist에서 n의 배수가 아닌 수들을 제거한 배열을 return 하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 10,000
- 1 ≤ numlist의 크기 ≤ 100
- 1 ≤ numlist의 원소 ≤ 100,000
입출력 예
| n | numlist | result |
| 3 | [4, 5, 6, 7, 8, 9, 10, 11, 12] | [6, 9, 12] |
| 5 | [1, 9, 3, 10, 13, 5] | [10, 5] |
| 12 | [2, 100, 120, 600, 12, 12] | [120, 600, 12, 12] |
내 풀이
def solution(n, numlist):
return [i for i in numlist if i % n == 0]
회고
- 리스트 컴프리헨션과 조금 친해진 느낌이다~!
- 처음부터 막 술술 나오는 건 아니지만, 쉬운 코드로 작성한 다음에 리스트 컴프리헨션으로 코드를 정리하느 정도는 된다.
- 가장 처음에 썼던 코드:
def solution(n, numlist):
answer = []
for i in numlist:
if i % n == 0:
answer.append(i)
return answer
- answer 배열에 요소를 하나하나 추가해가는 방식이 아니라 기존의 배열에서 하나씩 삭제해가는 코드를 작성해보고 싶은데, 왜 if i % n != 0: numlist.remove(i) 처럼 작성하면 코드가 안 돌아갈까? remove 함수 어렵다.
'Programmers > Python' 카테고리의 다른 글
| [프로그래머스] [Python] 영어가 싫어요 (0) | 2022.11.11 |
|---|---|
| [프로그래머스] [Python] 아이스 아메리카노 (0) | 2022.11.10 |
| [프로그래머스] [Python] 중앙값 구하기 (0) | 2022.11.10 |
| [프로그래머스] [Python] 짝수 홀수 개수 (0) | 2022.11.10 |
| [프로그래머스] [Python] 편지 (0) | 2022.11.10 |