안녕하세요. 이번에는 프로그래머스 두 정수 사이의 합을 풀어보려고 합니다.
https://school.programmers.co.kr/learn/courses/30/lessons/12933
Problem
두 정수 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의 대소관계는 정해져 있지 않습니다.
Solution
import kotlin.math.max
import kotlin.math.min
class Solution {
fun solution(a: Int, b: Int): Long {
var answer: Long = 0
var start: Int
var end: Int
start = max(a, b)
end = min(a, b)
for(i in start..end) {
answer += i
}
return answer
}
}
이번 문제는 max와 min을 사용해서 start와 end을 구한 다음 for문을 사용해서 값을 구하는 방법으로 문제를 접근해보았다.
1. 다른 사람 코드
class Solution {
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()
}
}
다른 사람의 코드를 보았는데 return 부분에서 (start..end).sum()을 이용해서 결과를 도출하는 모습을 볼 수 있었다. 코틀린에서는 sum()을 통해서 합을 출력하는 함수가 있는데 저런식으로 활용하는 방법도 있다는 것을 배울 수 있어서 가져와보았다. 아직까지 코틀린의 많은 기능들을 잘 활용하지 못하는 것 같아서 좀 더 많은 공부가 필요할 것 같다.
Performance
1. 내가 작성한 코드 | 2. 다른 사람 코드 |
|
|
반응형
'프로그래머스 Algorithm' 카테고리의 다른 글
[프로그래머스] 서울에서 김서방 찾기Kotlin (0) | 2023.11.17 |
---|---|
[프로그래머스] 콜라츠 추측 Kotlin (0) | 2023.11.16 |
[프로그래머스] 하샤드 수 Kotlin (0) | 2023.11.14 |
[프로그래머스] 정수 내림차순으로 배치하기 Kotlin (2) | 2023.11.13 |
[프로그래머스] 문자열을 정수로 바꾸기 Kotlin (2) | 2023.11.12 |