출처: https://meyouus.tistory.com/64 [정보 공유 - For Me For You For Us]
본문으로 바로가기

 

간단히 말해 arr에 있는 element들을 divisor로 나누었을때, 나누어 떨어지는 숫자가 있다면 이를 오름차순으로 배열하라. 만약 나누어 떨어지는 숫자가 하나도 없다면 [-1]을 return하라. 따라서 다음과 같이 풀었다:

def solution(arr, divisor):
    answer = []
    for i in arr:
        if i%divisor == 0:
            answer.append(i)
        answer.sort()
    if len(answer) == 0:
        answer = [-1]
    return answer

 

간단히 arr에 있는 element들을 나누었을 때, 나머지가 0이라면 나누어 떨어지는 것이므로 0일 경우 answer에 append를 시켜주고, answer를 sort한다. 만약 이렇게 한 후 answer의 length가 0이라면 (즉 아무 element도 없다면), answer는 [-1]인 것으로 한다.

 

※ 다른 사람의 풀이

def solution(arr, divisor): return sorted([n for n in arr if n%divisor == 0]) or [-1]

이것은 프로그래머스 다른 사람의 풀이에 있는 좋아요 가장 많이 받은 풀이었다.

심지어 이 분께서는 한 줄로 풀었따

내가 한 풀이와는 논리는 비슷하지만 매우 간단하게 풀었기에 놀랬다. 특히 or [-1]이 왜인지는 모르겠지만, 한번도 생각해본 방법이 아니라서 조금 충격이었다