Level 1. 나누어 떨어지는 숫자 배열

Pear_Mh·2021년 6월 16일
0

Programmers-Level 1.

목록 보기
24/49

24. 나누어 떨어지는 숫자 배열

코딩테스트 연습 > 연습문제 > 나누어 떨어지는 숫자 배열
https://programmers.co.kr/learn/courses/30/lessons/12910


문제 정리

Input value =

  • arr = 자연수 리스트

  • divisor = 자연수

return i for i in arr if arr%divisor == 0

  1. arr을 오름차순 정렬한다.

  2. 나누어 떨어지는 값을 return 하되,

2-1. 나누어 떨어지는 값이 없으면 -1을 return 한다.


제한 조건

ㆍ arr은 자연수를 담은 배열입니다.

ㆍ 정수 i, j에 대해 i ≠ j 이면 arr(i) ≠ arr(j) 입니다.

ㆍ divisor는 자연수입니다.

ㆍ array는 길이 1 이상인 배열입니다.


풀이 방법

# 이전에 풀었던 방법

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

# Code test
arr,divisor = [3,2,6],10
solution(arr,divisor)

한줄 코딩

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

# Code test
arr,divisor = [3,2,6],10
solution(arr,divisor)

마치며

  1. return (i for i in x if i--) or y 의 형태를 이용하여 코드를 간소화 할 수 있다!

  2. 5월 초에 list - append, pop 만 알았을 때 보다 확실하게 코드가 깔끔하게 정리됨을 볼 수 있다..! 비록 Level 1이긴 하지만 발전을 하는것이 보인다.

profile
Beyond the new era.

0개의 댓글