Dev/Algorithm

간만의 알고리즘 공부 - 7 (두 정수 사이의 합 | 등차수열의 합)

healthyryu 2024. 7. 5. 01:13

문제 설명
두 정수 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의 대소관계는 정해져있지 않습니다.

입출력 예

 

 

내가 푼 방법

fun solution(a: Int, b: Int): Long {
    var answer: Long = 0
    var low = a
    var high = b
    if (low > high) {
        var temp = high
        high = low
        low = temp
    }

    for (num in low..high) {
        answer += num
    }

    return answer
}

 

간단하다고 생각하고 생각나는데로 직관적으로 풀었다.

 

코드 첨삭

fun solution(a: Int, b: Int): Long {
    // a와 b의 대소 관계를 정합니다.
    val start = Math.min(a, b)
    val end = Math.max(a, b)

    // start부터 end까지의 정수 합을 계산합니다.
    // 가우스 합 공식을 사용하여 효율적으로 계산합니다.
    return (start.toLong() + end) * (end - start + 1) / 2
}

 

일단, 큰값 작은값 구할때 내장함수 사용해서 사용해서 훨씬 간단하다. 그리고 수학적으로 가우스 합 공식을 사용하니 간단하고 효율적이고 있어보이는 방법이다.

 

 

등차수열의 합

https://www.ebsmath.co.kr/resource/rscView?cate=11009&cate2=11041&cate3=11123&rscTpDscd=RTP15&grdCd=HGRD02&sno=29453&type=S&historyYn=study

 

[EBSMath 가우스와 등차수열의 합]

19세기 최고의 수학자로 꼽히는 프리드리히 가우스는 10살 때 1부터 100까지 더하는 계산을 단번에 해냈습니다. 어린 가우스가 사용한 방법은, 1부터 하나씩 커지는 수열의 합뿐만 아니라, 일정한

www.ebsmath.co.kr

 

https://workshop-code.tistory.com/51

 

[알고리즘] 가우스의 덧셈 공식

목표 가우스 덧셈에 대해 알아보자 가우스 덧셈을 이용한 문제 풀이 가우스 덧셈 등장 배경 천재적인 수학자 독일의 가우스는 어려서부터 수학에 재능을 보였다. 가우스가 초등학교 3학년 때 수

workshop-code.tistory.com

 

반응형