# 문제
두 정수 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의 대소관계는 정해져있지 않습니다.
# 입출력 예
ex) a=3 ,b =5 / return = 2+4+5 =12
ex) a=3, b=3 / return = 3
ex) a=5, b=3 / return = 5+4+3 = 12
# 풀이
class Solution {
fun solution(a: Int, b: Int): Long {
var answer : Long = 0
if (a < b){
for(x in a..b){
answer += x
}
}
if (a > b){
for(x in b..a){
answer += x
}
}
return answer
}
}
for문을 사용해서 a부터 b까지 돌면서 각각의 값을 누적시켜서 answer에 넣어주는식으로 풀었다
그런데 a=5,b=3일때처럼 a값이 더 클때를 생각해야되기때문에 if문을 사용해서 a가 b보다 작을때와 a가 b보다 클때를 각각 나눠줬다
# 다른사람의 풀이
fun solution(a: Int, b: Int) : Long {
val start : Long = (if(a > b) b else a).toLong()
val end : Long = (if(a > b) a else b).toLong()
return (start..end).sum()
}
sum()을 사용해서 숫자타입의 원소의 합을 반환할 수 있다
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()
'개발 노트 > 알고리즘[Kotlin]' 카테고리의 다른 글
프로그래머스 알고리즘 문제[서울에서 김서방 찾기] (0) | 2024.03.25 |
---|---|
프로그래머스 알고리즘 문제[콜라츠 추측] (0) | 2024.03.22 |
프로그래머스 알고리즘 문제[하샤드 수] (2) | 2024.03.19 |
프로그래머스 알고리즘 문제[정수 내림차순으로 배치하기] (1) | 2024.03.15 |
프로그래머스 알고리즘 문제[정수 제곱근 판별] (0) | 2024.03.14 |