문제
https://school.programmers.co.kr/learn/courses/30/lessons/12910
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
해설
def solution(arr, divisor):
answer = sorted(list(filter(lambda x: x % divisor == 0, arr)))
if len(answer) == 0:
answer = [-1]
return answer
filter(function, iterable)
- function: iterable의 매 요소마다 실행할 함수
- iterable: 필터할 iterable(순회가능한 요소)
- ex) list, string
filter 메서드를 사용하여 arr 요소를 순회하면서, lambda(람다)함수를 반환값을 기준으로 참인 경우만 반환하도록 구현했다.
def solution(arr, divisor):
answer = sorted([i for i in arr if i % divisor == 0])
if len(answer) == 0:
answer = [-1]
return answer
filter 메서드 대신 리스트 안에서 직접 if문으로 사용하여 구현할 수도 있다.
참고
map(function, iterables)
- function: iterable의 매 요소마다 실행할 함수
- iterables: 순회 가능한 요소들
- 만약 복수의 iterable을 작성한 경우, function 함수에 2번째 인자로 2번째 iterable의 요소가 들어간다.
def myfunc(a, b):
return a + b
x = list(map(myfunc, ('apple', 'banana', 'cherry'), ('orange', 'lemon', 'pineapple')))
# ['appleorange', 'bananalemon', 'cherrypineapple']
'Python' 카테고리의 다른 글
프로그래머스 - 하샤드 수 (0) | 2024.04.11 |
---|---|
프로그래머스 - 이상한 문자 만들기 (0) | 2024.04.10 |
프로그래머스 - 문자열 내 마음대로 정렬하기 (0) | 2024.04.08 |
프로그래머스 - 자연수 뒤집어 배열로 만들기 (0) | 2024.04.07 |
프로그래머스 - 문자열 내림차순으로 배치하기 (0) | 2024.04.06 |