<문제>
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
<풀이>
def solution(arr, d):
a = []
for i in arr:
if i % d == 0:
a.append(i)
if a == []:
return [-1]
else:
return sorted(a)
<다른 풀이>
방법 1.
def solution(arr, divisor):
arr = [x for x in arr if x % divisor == 0];
arr.sort();
return arr if len(arr) != 0 else [-1];
방법 2.
def solution(arr, divisor):
return sorted([n for n in arr if n%divisor == 0]) or [-1]
<느낀점>
for문을 여러번 돌리면 시간효율성 측면에서 떨어진다. for문을 최소한을 쓰자.