프로그래머스 문제
두 정수 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 또는 배열과 같은 컬렉션의 평균을 계산하는 함수입니다
'Kotlin Language > programmers' 카테고리의 다른 글
Kotlin - 하샤드 수 프로그래머스 코딩 연습 ( 21 ) (0) | 2023.12.07 |
---|---|
Kotlin - 정수 내림차순으로 배치하기 코딩 연습 ( 20 ) (0) | 2023.12.07 |
Kotlin - 정수 제곱근 판별 프로그래머스 코딩 연습 ( 19 ) (0) | 2023.12.06 |
Kotlin - 문자열을 정수로 바꾸기 프로그래머스 코딩 연습 ( 18 ) (0) | 2023.12.06 |
Kotlin - 자연수 뒤집어 배열로 만들기 프로그래머스 코딩 연습 ( 17 ) (0) | 2023.12.06 |
Kotlin - x만큼 간격이 있는 n개의 숫자 ( 16 ) (0) | 2023.12.05 |