🔴 문제
🔵 풀이 1 - for...in
func solution(_ a: Int, _ b: Int) -> Int {
var sum = 0
let start = min(a, b)
let fin = max(a, b)
for i in start...fin {
sum += i
}
return sum
}
* for i in start...fin 에서 star는 무조건 fin보다 작거나 같아야 한다.
🔵 풀이 2 - Array함수 사용
func solution(_ a:Int, _ b:Int) -> Int64 {
return Int64(Array(a > b ? b...a : a...b).reduce(0, +))
}
Array 함수에 대한 문서는 못찾았지만, Array(a...b)는 a부터 b까지의 정수값들이 포함된 리스트를 반환한다.
🔵 풀이 3 - 등차수열의 합 공식 사용
1부터 n까지 모든 정수의 합은 n(n+1)/2로 계산할 수 있다.
func solution(_ a:Int, _ b:Int) -> Int64 {
return Int64(a + b) * Int64(max(a, b) - min(a, b) + 1) / Int64(2)
}
'Swift > Code Kata (알고리즘)' 카테고리의 다른 글
[Swift|코드카타] (프로그래머스) 입문 #24. 서울에서 김서방 찾기 - firstIndex(of:), enumerated() (2) | 2024.02.18 |
---|---|
[Swift|코드카타] (프로그래머스) 입문 #23. 콜라츠 추측 - 함수 2개 쓰기 (1) | 2024.02.18 |
[Swift|코드카타] (프로그래머스) 입문 #21. 하샤드 수 - reduce (0) | 2024.02.16 |
[Swift|코드카타] (프로그래머스) 입문 #20. 정수 내림차순으로 정렬하기 - sort(), sorted() (0) | 2024.02.15 |
[Swift|코드카타] (프로그래머스) 입문 #19. 정수 제곱근 판별 - Foundation 프레임워크, sqrt(_:), squareRoot() (0) | 2024.02.15 |