문제 설명

정수 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 함수 어렵다.

 

 

복사했습니다!