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
'알고리즘 > programmers[1]' 카테고리의 다른 글
[프로그래머스] 문자열 내 마음대로 정렬하기: python3 (0) | 2022.01.23 |
---|---|
[프로그래머스] 두 정수 사이의 합: python3 (0) | 2022.01.23 |
[프로그래머스] 같은 숫자는 싫어 python3 다른 풀이 (0) | 2022.01.23 |
[프로그래머스] 같은 숫자는 싫어: python3 (0) | 2022.01.23 |
[프로그래머스] 가운데 글자 가져오기: python (0) | 2022.01.23 |