본문 바로가기
Kotlin Language/programmers

Kotlin - 두 정수 사이의 합 ( 22 )

by Classic Master 2023. 12. 7.
728x90

프로그래머스 문제

두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.

a b return
3 5 12
3 3 3
5 3 12

 

코틀린 두 정수 사이의 합 답

1)

class Solution {
    fun solution(a: Int, b: Int): Long {
        var answer: Long = 0
        if (a < b) {
            for (i in a..b) {
                answer += i
            }
      	  } else if (a > b) {
           	 for (i in b..a) {
             	   answer += i
            }
        } else { 
            answer = a.toLong()
        }
        return answer
    }
}

 

2)

class Solution {
    fun solution(a: Int, b: Int) =
        if (a < b) ((a..b).average() * (b - a + 1)).toLong()
        else if (a > b) ((b..a).average() * (a - b + 1)).toLong()
        else a.toLong()
}

코틀린 풀이

1)

if (a < b) 만약 a가 b보다 작다면, for 루프를 사용하여 a부터 b까지의 정수를 모두 더합니다.
else if (a > b) 만약 a가 b보다 크다면, for 루프를 사용하여 b부터 a까지의 정수를 모두 더합니다.
else 위의 두 경우가 아니라면 (a와 b가 같은 경우), answer에 a 값을 할당하고 Long 타입으로 변환합니다. 이 경우에는 for 루프를 사용할 필요가 없습니다.
return answer 최종적으로 함수는 계산된 결과인 answer 값을 반환합니다.

2)

if (a < b) 블록: 만약 a가 b보다 작다면, 구간 (a..b)에 있는 정수들의 평균을 계산합니다. 이때 average() 함수를 사용하고, 그 평균에 정수의 개수인 (b - a + 1)을 곱하여 최종 결과를 얻습니다.
else if (a > b) 블록: 만약 a가 b보다 크다면, 구간 (b..a)에 있는 정수들의 평균을 계산합니다. 이때도 average() 함수를 사용하고, 그 평균에 정수의 개수인 (a - b + 1)을 곱하여 최종 결과를 얻습니다.

 

(a..b)는 a부터 b까지의 정수 범위를 나타냅니다. 예를 들어, 만약 a가 2이고 b가 5이면, 이 범위에는 2, 3, 4, 5가 포함됩니다.
(a..b).average() 이 부분은 해당 정수 범위의 모든 숫자의 평균을 계산하는 것입니다. 즉, 위의 예시에서는 (2 + 3 + 4 + 5) / 4 = 3.5 가 됩니다.
(b - a + 1) 부분은 평균에 해당 범위 내 정수의 개수를 곱하는 것입니다. 위의 예시에서는 3.5 * 4 = 14가 됩니다. (b - a + 1)은 범위 내 정수의 개수를 나타냅니다.

 

average()?

  • List 또는 배열과 같은 컬렉션의 평균을 계산하는 함수입니다

 

 

 

 

728x90
반응형