🔴 문제
🔵 풀이
1. 초기 풀이 - reduce, ternary operator
func solution(_ x:Int) -> Bool {
let sum = String(x).reduce(0) {$0 + Int(String($1))!}
return x % sum == 0 ? true : false
}
코드리뷰 >
- 잘한 점 : 이전에 배웠던 reduce를 적극 사용한 것은 잘했다.
- 아쉬운 점 : 삼항연산자를 쓰지 않아도 조건식을 return하면 true, false 값이 출력되었을 것이다.
func solution(_ x:Int) -> Bool {
let sum = String(x).reduce(0) {$0 + Int(String($1))!}
return x % sum == 0
}
2. 코드 개선 - reduce
위 코드를 한 줄로 더 축약한다면?
func solution(_ x:Int) -> Bool {
return x % String(x).reduce(0) {$0 + Int(String($1))!} == 0
}
이렇게 될 수 있다.
참고 ) https://yurim-dev.tistory.com/16
[Swift] 고차함수 - map, filter, reduce
주제: Swift 표준 라이브러리에서 제공하는 고차함수 map, filter, reduce (참고: yagom's blog, 개발하는 훈이님 블로그 ) 📌 고차함수란? 고차함수(Higher-order function)는 다른 함수를 *전달인자로 받거나, 함
yurim-dev.tistory.com
'Swift > Code Kata (알고리즘)' 카테고리의 다른 글
| [Swift|코드카타] (프로그래머스) 입문 #23. 콜라츠 추측 - 함수 2개 쓰기 (1) | 2024.02.18 |
|---|---|
| [Swift|코드카타] (프로그래머스) 입문 #22. 두 정수 사이의 합 - Array(), 등차수열의 합 (0) | 2024.02.16 |
| [Swift|코드카타] (프로그래머스) 입문 #20. 정수 내림차순으로 정렬하기 - sort(), sorted() (0) | 2024.02.15 |
| [Swift|코드카타] (프로그래머스) 입문 #19. 정수 제곱근 판별 - Foundation 프레임워크, sqrt(_:), squareRoot() (0) | 2024.02.15 |
| [Swift|코드카타] (프로그래머스) 입문 #18. 문자열을 정수로 바꾸기 (0) | 2024.02.14 |
