[프로그래머스] 나누어 떨어지는 숫자 배열 [연습문제] [python] Level1
문제 설명
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
입출력 예 설명
입출력 예#1
arr의 원소 중 5로 나누어 떨어지는 원소는 5와 10입니다. 따라서 [5, 10]을 리턴합니다.
입출력 예#2
arr의 모든 원소는 1으로 나누어 떨어집니다. 원소를 오름차순으로 정렬해 [1, 2, 3, 36]을 리턴합니다.
입출력 예#3
3, 2, 6은 10으로 나누어 떨어지지 않습니다. 나누어 떨어지는 원소가 없으므로 [-1]을 리턴합니다.
설계 및 구현
my_solution
def solution(arr, divisor):
answer = []
for i in arr:
if i % divisor == 0:
answer.append(i)
if answer:
return sorted(answer)
return [-1]
arr의 원소들을 한번씩 돌면서 divisor로 나누어 떨어지는 수를 answer에 쌓는다.
만약 answer에 원소가 있다면 sorted(answer)로 정렬한 후 반환하고
answer이 빈 리스트 라면 [-1]을 반환하여 해결 할 수 있다.
1. arr을 돌며 divisor로 나누어 떨어지는 요소를 answer에 쌓는다.
2. 만약 answer에 원소가 하나라도 들어 있다면 answer을 정렬한 후 반환
3. answer이 빈 리스트 라면 [-1]을 반환하여 해결!
다른 분의 모범 solution
def solution(arr, divisor): return sorted([n for n in arr if n%divisor == 0]) or [-1]
answer이 빈리스트인지 검사 할 때 if문 대신 or연산자를 사용했다.
이걸 한줄로 ~ amazing~
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 문자열 내 마음대로 정렬하기 [연습문제] [python] (0) | 2020.09.19 |
---|---|
[프로그래머스] 두 정수 사이의 값 [연습문제] [python] (0) | 2020.09.19 |
[프로그래머스] 같은 숫자는 싫어 [연습문제] [python] (0) | 2020.09.19 |
[프로그래머스] 가운데 글자 가져오기[연습문제][python] (0) | 2020.09.19 |
[프로그래머스] 2016 [연습문제][python] (0) | 2020.09.19 |