코딩테스트

[프로그래머스] 나누어 떨어지는 숫자 배열 - Lv.1

pyflu 2023. 10. 14. 03:35

오늘은 프로그래머스 12910번 문제"나누어 떨어지는 숫자 배열" Lv.1파이썬으로 풀어보도록 하겠습니다.

[프로그래머스] 나누어 떨어지는 숫자 배열 Lv.1 - [파이썬/python]

 

프로그래머스-나누어-떨어지는-숫자-배열
프로그래머스-나누어-떨어지는-숫자-배열


💻 문제 설명

 

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

 


🚨 제한사항

 

  • arr은 자연수를 담은 배열입니다.
  • 정수 i, j에 대해 i ≠ j 이면 arr[i]arr[j] 입니다.
  • divisor는 자연수입니다.
  • array는 길이 1 이상인 배열입니다.

🌈 힌트

 

더보기

1. 리스트 컴프리헨션 또는 filter 함수를 사용하여 arr의 각 원소가 divisor로 나누어 떨어지는지 확인합니다. 이렇게 하면 divisor로 나누어 떨어지는 원소만을 선택할 수 있습니다.

 

 

2. 선택된 원소들을 정렬합니다. 이를 위해 sort 함수 또는 sorted 함수를 사용할 수 있습니다.

 

 

3. 만약 divisor로 나누어 떨어지는 원소가 없다면, [-1]을 반환해야 합니다. 이를 위해 조건문을 사용하거나, 파이썬의 or 연산자를 활용할 수 있습니다.


 

 




!!!정답 주의!!!




 

 

 


🌟 소스 코드

프로그래머스-나누어-떨어지는-숫자-배열-파이썬-코드
프로그래머스-나누어-떨어지는-숫자-배열-파이썬-코드

 

def solution(arr, divisor):
   
    # 1. arr 리스트의 각 원소에 대해 'divisor'로 나누어 떨어지는지 확인
    # 2. 람다(lambda) 함수를 사용하여 'filter' 함수의 조건으로 적용하여 True, False 반환
    # 3. filter 함수는 조건을 만족하는 원소만을 선택하여 새로운 리스트를 생성
    # 4. sorted 함수를 통해 리스트 오름차순 정렬
    result = sorted(list(filter(lambda x: x%divisor==0, arr)))
   
    # 필터링된 result가 비어있지 않다면 result를 반환하고,
    # 그렇지 않다면 [-1]을 반환
    return result or [-1]

 

 


🏳‍🌈 테스트 결과

 

프로그래머스-나누어-떨어지는-숫자-배열-상태
프로그래머스-나누어-떨어지는-숫자-배열-상태

 

프로그래머스-나누어-떨어지는-숫자-배열-테스트-결과
프로그래머스-나누어-떨어지는-숫자-배열-테스트-결과

728x90