[업무 지식]/Algorithm
[filter] 나누어 떨어지는 숫자 배열
에디터 윤슬
2024. 12. 19. 09:33
링크
https://school.programmers.co.kr/learn/courses/30/lessons/12910
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제
정답 1
def solution(arr, divisor):
answer = []
for num in arr:
if num % divisor == 0:
answer.append(num)
return sorted(answer) if answer else [-1]
정답 2
def solution(arr, divisor):
answer = sorted([num for num in arr if num % divisor == 0])
return answer if answer else [-1]
정답 3
def solution(arr, divisor):
answer = list(filter(lambda x: x % divisor == 0, arr))
return sorted(answer) if answer else [-1]
새롭게 이해한 내용
- filter 함수란?
- 특정 조건을 만족하는 요소들만 걸러내는 데 사용
# 기본 형태
filter(function, iterable)
- `function`: 각 요소에 대해 평가할 조건을 정의하는 함수. 이 함수는 `True` 또는 `False`를 반환해야 한다.
- `iterable`: 필터링할 대상, 즉 리스트, 튜플, 문자열 등 반복 가능한 객체.
- 결과적으로 filter 조건을 만족하는 요소들만 포함된 필터 객체를 반환. 이 객체를 사용하려면 list() or tuple()로 감싸서 변환해야 한다.