문제 ) 프로그래머스 - 나누어 떨어지는 숫자 배열(lv.1)
📌 문제 설명
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
📌 제한 사항
- arr은 자연수를 담은 배열입니다.
- 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
- divisor는 자연수입니다.
- array는 길이 1 이상인 배열입니다.
📌 입출력 예
arr | divisor | return |
[5,9,7,10] | 5 | [5,10] |
[2,36,1,3] | 1 | [1,2,3,36] |
[3,2,6] | 10 | [-1] |
✏️ sorted( for문, if 조건문 )
- 일전에 sorted 사용하면 list로 자동 반환되는 점을 고려해서 [] 안에 넣지 않음. (통과는 됐는데 맞는 문법인지 확신이 안 선다..)
✏️ 배열의 길이가 0일 경우 -1 반환
def solution(arr, divisor):
answer = sorted(i for i in arr if i % divisor == 0)
if len(answer) == 0: answer = [-1]
return answer
✏️ 표현식1 or 표현식2
- or 앞, 뒤 표현식 둘 다 True일 경우 표현식1 값만 나옴.(맞으면 앞에서 끊김)
def solution(arr, divisor):
# return 표현식1 or 표현식2
return sorted(i for i in arr if i % divisor == 0) or [-1]
'알고리즘 > Python 기초' 카테고리의 다른 글
파이썬 - 음양 더하기(lv.1) (0) | 2023.05.21 |
---|---|
파이썬 - 핸드폰 번호 가리기(lv.1) (0) | 2023.05.21 |
파이썬 - 서울에서 김서방 찾기(lv.1) (0) | 2023.05.21 |
파이썬 - 콜라츠 추측(lv.1) (0) | 2023.05.21 |
파이썬 - 두 정수 사이의 합(lv.1) (0) | 2023.05.21 |