본문 바로가기

개발 노트/알고리즘[Kotlin]

프로그래머스 알고리즘 문제[두수의 나눗셈]

수 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