티스토리 뷰
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/77884
문제 사진
내 풀이
import Foundation
func solution(_ left:Int, _ right:Int) -> Int {
let result = Array(left...right).reduce(0) { isEven($1) ? $0 + $1 : $0 - $1 }
return result
}
solution(13, 17)
func isEven(_ num: Int) -> Bool {
var result: [Int] = []
for n in 1...num {
if num % n == 0 {
result.append(n)
}
}
return result.count % 2 == 0 ? true : false
}
- left -> right까지의 수 배열에 넣기
- 배열에 요소마다 약수의 갯수 구하고 갯수가 짝수인지 홀수인지 판별하는 isEven()메서드 구현
- isEven이 true면 +, false 면 - (reduce)사용
다른사람의 풀이
func solution(_ left: Int, _ right: Int) -> Int {
return (left...right).map { i in (1...i).filter { i % $0 == 0 }.count % 2 == 0 ? i : -i }.reduce(0, +)
}
나도 한줄로 끝내보고 싶다아...
배운점
reduce 흐름 파악에 조금더 이해를 할 수 있었던 문제였다.
reduce 사용시 다음값이 짝수인지 홀수 인지 파악을 해야하는데
이전값을 넣으면서 계속 왜안되지 이러고 있었다..
print로 이전값, 다음값을 찍어보니 초기값이 0이니 가장처음 이전값은 0일 수 밖에없어 Fatal error가 났었다.
728x90
'알고리즘' 카테고리의 다른 글
[Swift 알고리즘] - 양꼬치 (Programmers) (0) | 2022.10.21 |
---|---|
[Swift 알고리즘] - 음양 더하기 (Programmers) (0) | 2022.10.20 |
[Swift 알고리즘] - 하샤드 수 (Programmers) (0) | 2022.10.17 |
[Swift 알고리즘] - Stack으로 Queue만들기 (0) | 2022.10.14 |
[Swift 알고리즘] - 문자열 다루기 기본(Programmers) (0) | 2022.10.13 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- swift programmers
- Swift Leetcode
- 2023년 회고
- RTCCameraVideoCapturer
- Swift init
- Swift ModernRIBs
- Swift 알고리즘
- swift property
- Swift 내림차순
- swift reduce
- swift (programmers)
- ios
- CS 네트워크
- swift 고차함수
- 원티드 프리온보딩
- removeLast()
- Swift inout
- Swift joined()
- Swift RIBs
- Class
- Swift final
- Swift 프로그래머스
- Swift
- Swift 프로퍼티
- Swift joined
- iOS error
- Combine: Asynchronous Programming with Swift
- Swift Error Handling
- swift protocol
- RIBs tutorial
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함