코딩 테스트/프로그래머스
[Swift] 프로그래머스(lv.1) 34 - 두 정수 사이의 합
말차프라푸치노
2022. 3. 18. 20:41
두 정수 사이의 합
문제 설명
두 정수 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의 대소관계는 정해져있지 않습니다.
문제풀이
1. a와 b의 대소관계를 모르므로 두 수를 비교한다. 작은 수(smallNum), 큰 수(largeNum)
2. 작은 수부터 큰 수까지 for루프를 돌며 다 더한다.
3. 리턴 타입이 Int64이므로 Int64()로 캐스팅해준다.
코드
내 코드
func solution(_ a:Int, _ b:Int) -> Int64 {
var result = 0
var smallNum = a
var largeNum = b
if(a>b){
smallNum = b
largeNum = a
}
for i in smallNum...largeNum {
result += i
}
return Int64(result)
}
다른 사람 코드 중 깔끔하다고 생각한 코드
func solution(_ a:Int, _ b:Int) -> Int64 {
return Int64(a + b) * Int64(max(a, b) - min(a, b) + 1) / Int64(2)
}
수열의 합을 사용했다. 수열이라니... 완전 까먹고 있었다.
후기
나름 쉽게 풀었다고 생각했는데 다른 사람들이 수열을 이용해 푼 것을 보고 한 수 배웠다.
수학이 중요하다는 것을 다시금 깨닫는다.