알고리즘/programmers[1]
[프로그래머스] 나누어 떨어지는 숫자 배열: python3
fladi
2022. 1. 23. 20:33
728x90
def solution(arr, divisor):
a = [i for i in arr if i%divisor == 0]
# a가 빈 리스트가 아니면 sorted(a)반환/ else [-1]
return sorted(a) if a else [-1]
<내 풀이 분석>
1. arr배열 요소 중 divisor로 나누어 떨어지는 값만 a배열에 저장함
2. a배열이 빈 리스트가 아니라면 sorted(a) (=오름차순으로 정렬된 a배열) 을 반환
빈 리스트라면 [-1]을 반환한다.
+) or을 이용한 풀이
def solution(arr, divisor):
# or: 앞에 것이 거짓이라면 뒤에 것 반환
return sorted([n for n in arr if n%divisor == 0]) or [-1]
프로그래머스에서 좋아요를 가장 많이 받은 풀이이다. 풀이방식은 앞에 것과 비슷함.
or: 앞에 내용이 거짓(빈리스트)이라면 뒤에 것 [-1]을 반환
def solution(arr, divisor):
a = list(filter(lambda x: x%divisor==0, arr))
return sorted(a) or [-1]
필터 함수를 사용해볼 수도 있다.
or 기억해둬야지.
728x90