내 풀이
func solution(_ arr:[Int], _ divisor:Int) -> [Int] {
let check = arr.filter { ($0)%divisor == 0 }
return check.count == 0 ? [-1] : check.sorted()
}
정수 배열 arr에서 divisor로 나누어 떨어지는 요소들을 찾고, 해당 요소들을 오름차순으로 정렬하여 반환하도록 코드를 작성했다.
- arr 배열을 filter 메서드를 사용하여 divisor로 나누어 떨어지는 요소들만을 필터링하여 새로운 배열 check에 저장
- check 배열의 길이를 확인하여 요소가 하나도 없는 경우를 처리
- check.count == 0 조건을 사용하여 나누어 떨어지는 요소가 하나도 없는 경우를 확인
- 이 경우 배열에 -1을 담아 반환
- 만약 나누어 떨어지는 요소가 존재하는 경우, sorted 메서드를 사용하여 요소들을 오름차순으로 정렬
- 정렬된 배열을 반환
divisor란?
- 어떤 수를 나눌 때 사용되는 수
- 위 문제에서는 정수 배열 arr의 각 요소를 divisor로 나누어 떨어지는지 확인하고, 그에 따라 필터링 및 정렬하는 작업을 수행한다.
따라서 divisor는 나눗셈을 위한 수로 사용되었다.
sorted란?
- 배열의 요소를 기준에 따라 정렬하는 메서드
- 주어진 배열을 정렬하여 새로운 배열을 반환
만약 기본적으로 오름차순으로 정렬하려면 sorted()를 사용하고,
내림차순으로 정렬하려면 sorted(by:) 메서드를 사용하여 비교 클로저를 제공
- 이 메서드는 배열의 요소가 숫자, 문자열 또는 사용자 지정 객체 등 어떤 타입이든지 상관없이 사용할 수 있음
' 𝗔𝗣𝗣𝗟𝗘 > ALGORITHM' 카테고리의 다른 글
[내일배움캠프] 데일리 루틴(iOS_3회차) - 핸드폰 번호 가리기 (0) | 2024.02.11 |
---|---|
[내일배움캠프] 데일리 루틴(iOS_3회차) - 음양 더하기 (0) | 2024.02.09 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 서울에서 김서방 찾기 (0) | 2024.02.08 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 콜라츠 추측 (0) | 2024.02.07 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 두 정수 사이의 합 (0) | 2024.02.07 |