프로그래머스/Lv. 0(코딩테스트 입문)

[프로그래머스 코딩테스트] 두 수의 나눗셈(Java)

Sigfriede 2023. 3. 21. 20:44

문제 설명

정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return하도록 solution 함수를 완성해주세요.

 

제한사항

  • 0 < num1 <= 100
  • 0 < num2 <= 100

 

  입출력 예

num1 num2 result
3 2 1500
7 3 2333
1 16 62
class Solution {
    public int solution(int num1, int num2) {
        double answer = (double) num1 / num2;
        answer = answer * 1000;
        return (int) answer;
    }
}

  우선 저는 값을 나눌 때 double형으로 형변환을 한 뒤에 계산했습니다. int형으로 계산하면 정수로 맞아떨어지지 않는 계산은 소수점을 기준으로 절삭당하게 됩니다. 만약 여기서 값손실이 발생한다면 뒤이은 계산에서도 연달아 오차가 생기기 때문에 주의가 필요합니다. 모든 계산을 마친 후 double형 값을 int형 값으로 다시 바꿔주었습니다.

  하지만 형변환 없이 num1에 먼저 1000을 곱한 값을 num2로  나누는 간단한 방법으로도 똑같은 결과를 도출할 수 있습니다.