문제 설명
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -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] |
입출력 예 설명
풀이 과정
- 새로운 배열을 담을 상수 result를 만든다.
- filter 함수를 사용해 배열 arr에서 주어진 조건을 만족할 경우만 골라낸다.
- 이때 주어진 조건은 arr을 divisor로 나누었을 때 나머지가 0이 되는 경우! 클로저를 이용해서 배열의 각 요소($0)를 순회하며 계산하도록 한다!
- 새로운 배열 result가 비어 있으면(=조건을 만족하는 값이 없다면) -1 반환해주고
- 그렇지 않으면 배열 result를 sorted() 를 사용해 오름차순으로 반환해준다.
Solution
func solution(_ arr:[Int], _ divisor:Int) -> [Int] {
let result = arr.filter { $0 % divisor == 0 }
if result.isEmpty {
return [-1]
} else {
return result.sorted()
}
}
삼항 조건 연산자를 사용해 더 줄일 수 있다!
func solution(_ arr:[Int], _ divisor:Int) -> [Int] {
let result = arr.filter { $0 % divisor == 0 }.sorted()
return result == [] ? [-1] : result
}
항상 발전해나가려고 노력하시는 유진님의 모습이 참 보기 좋습니다☺️ 오늘 못 봬서 아쉬웠어요~!! 오늘도 수고하셨고 내일 뵐게요~!