나누어 떨어지는 숫자 배열

문제 설명

array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.

첫 코드

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

개선된 코드

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

answer의 값이 하나라도 있다면, True로 인식하는 것을 이용하여, 코드를 간략하게 만들 수 있었다.

'알고리즘 > 프래그래머스 lv.1' 카테고리의 다른 글

2016년  (0) 2022.10.19
완주하지 못한 선수  (0) 2022.10.19
하샤드 수  (0) 2022.10.19
k 번째 수  (0) 2022.10.19
핸드폰 번호 가리기  (0) 2022.10.19