정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요.
class Solution {
fun solution(num1: Int, num2: Int): Int {
return (num1.toDouble()/num2.toDouble()*1000).toInt()
}
}
[코드 설명]
num1 = 3, num2 = 2 이면, 3 / 2 = 1.5 이고, 1.5*1000 = 1500이된다
num1 = 7, num2 = 3 이면, 7 / 3 = 2.33333... 이고, 2.33333...*1000 = 2333.33..이되며, 정수부분은 2333이다
num1 = 1, num2 = 16 이면, 1/ 16 = 0.0625 이고, 0.0625 *1000 = 62.5 가되며, 정수부분은 62이다
따라서 두수를 입력받아서 나눈값에 1000을 곱하면 되는데,
문제는 int 나누기 int를 할 경우 답또한 int형이 나오므로 소숫점 아래부분이 지워지는 현상이 발생한다
따라서 num1과 num2를 소숫점까지 볼수있도록 Double형으로 바꿔서 연산을 한뒤, 1000을 곱해주고, 다시 Int형으로 변환시켜줘야지 정수부분만 출력할수있다
# 다른 사람의 풀이
class Solution {
fun solution(num1: Int, num2: Int): Int {
val division = num1.toDouble() / num2
return (division * 1000).toInt()
}
}
fun solution(num1: Int, num2: Int) = num1 * 1000 / num2
'개발 노트 > 알고리즘[Kotlin]' 카테고리의 다른 글
프로그래머스 알고리즘 문제[짝수의합] (0) | 2024.02.24 |
---|---|
프로그래머스 알고리즘 문제[각도기] (0) | 2024.02.01 |
프로그래머스 알고리즘 문제[두수의 합] (0) | 2024.01.31 |
프로그래머스 알고리즘 문제[숫자 비교하기] (0) | 2024.01.31 |
프로그래머스 알고리즘 문제[나이출력] (0) | 2024.01.31 |