오늘은 프로그래머스 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
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 튜플 - Lv.2 (54) | 2023.10.14 |
---|---|
[프로그래머스] 문자열 곱하기 - Lv.0 (53) | 2023.10.14 |
[프로그래머스] 숫자의 표현 - Lv.2 (65) | 2023.10.12 |
[프로그래머스] 코드 처리하기 - Lv.0 (59) | 2023.10.12 |
[프로그래머스] 올바른 괄호 - Lv.2 (48) | 2023.10.08 |