반응형
두 정수 사이의 합
|
문제 설명
두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
- a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
- a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
- a와 b의 대소관계는 정해져있지 않습니다.
3 | 5 | 12 |
3 | 3 | 3 |
5 | 3 | 12 |
고차함수 reduce를 사용해서 풀거나 while, for 반복구문을 사용해서 풀 수 있겠구나라고 생각했습니다
나의 풀이
func solution(_ a:Int, _ b:Int) -> Int64 {
var value = 0
if a == b { return Int64(a) }
//최소 최대
var a1 = a < b ? a : b
var b1 = a > b ? a : b
for x in a1...b1 {
value += x
}
return Int64(value)
}
다른 사람 풀이
func solution(_ a:Int, _ b:Int) -> Int64 {
return Int64(Array(a > b ? b...a : a...b).reduce(0, +))
}
func solution(_ a:Int, _ b:Int) -> Int64 {
return Int64(a + b) * Int64(max(a, b) - min(a, b) + 1) / Int64(2)
}
수열 공식을 사용해서 실행시간이 단축되어 결과값이 도출되는걸 볼 수 있다
반응형
'Programmers > LV1.' 카테고리의 다른 글
Lv1 | Swift - 음양 더하기 (0) | 2024.06.17 |
---|---|
Lv1 | Swift - 서울에서 김서방 찾기 (0) | 2024.06.14 |
Lv1 | Swift - 나머지가 1이 되는 수 찾기 (0) | 2024.06.12 |
Lv1 | Swift - x만큼 간격이 있는 n개의 숫자 (1) | 2024.06.11 |
Lv1 | Swift - 하샤드 수 (0) | 2024.06.10 |