jyamethyst21 님의 블로그

프로그래머스 - '나누어 떨어지는 숫자 배열' (PYTHON 풀이) 본문

CODING 💻

프로그래머스 - '나누어 떨어지는 숫자 배열' (PYTHON 풀이)

jyamethyst21 2026. 5. 5. 00:26

문제:

 

자연수를 담은 배열이 주어지고 나눌 몫을 입력받을 때, 나누어 떨어지는 자연수만 배열에 오름차순으로 남긴 뒤 해당 배열을 출력하면 되는 문제이다. 이때 나눠 떨어지는 수가 1개라도 없다면 [-1]을 출력해야 한다.

 

풀이:

def solution(arr, divisor):
    new_li = []
    for i in arr:
        if i % divisor == 0:
            new_li.append(i)
    if len(new_li) == 0:
        return [-1]
    else:
        return sorted(new_li, reverse = False)

오름차순 정렬을 반영 새로운 리스트인 new_li를 선언하고, 반복문을 돈다.

자연수를 담은 arr 배열을 한개씩 돌면서, 입력 받은 divisor로 나눈 몫이 0이라면 나눠 떨어진 것이기 때문에 new_li에 해당 수를 더한다. 

반복문을 전부 돌고 나면 new_li에 몫으로 나눠 떨어진 수만 남겨질 것이다. 이후 해당 리스트의 길이를 확인해서 0이면 -1을, 그렇지 않으면 sorted 함수를 활용해 오름차순 정렬을 한 뒤 리턴하면 된다.

여기서 주의할 점은 -1을 리턴할 때 리스트 형태여야 한다는 점이다. -1이 아닌 [-1]로 리턴해야 하는 것을 잊지 말자.