알고리즘

[프로그래머스] 연습문제 - 나누어 떨어지는 숫자 배열

ji_iin 2022. 1. 18. 15:21

오늘은 기초부터 다지기 위해 간단한 수학 연산 문제를 풀었습니다!

https://programmers.co.kr/learn/courses/30/lessons/12910

 

코딩테스트 연습 - 나누어 떨어지는 숫자 배열

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

programmers.co.kr

 

첫 시도는 생각 나는대로 코드를 작성하다보니 길게 작성했는데,

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

 

이를 좀 더 줄이면 3줄만에 작성이 가능합니다!

삼항 연산자와 for문을 배열 안에서 작성하는 식으로 줄일 수 있습니다.

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