문제설명
정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요.
제한사항
- 0 < num1 ≤ 100
- 0 < num2 ≤ 100
나의 풀이
class Solution {
public int solution(int num1, int num2) {
return (int)((double)num1 / num2 * 1000);
//int : 정수형 값을 반환
//(double)num1 : num1을 실수형(double)으로 변환(실수형 나눗셈)
// * 1000 : 문제의 나눗셈 결과에 1000배 한 값을 얻기 위함
//(int) 최종 결과를 정수형으로 형 변환, 소수점 이하 버리기 위함
}
}
주어진 두 정수를 나누고, 그 결과에 1000을 곱한 후 소수점 이하를 버린 정수 부분을 반환함.
참고할 만한 다른 사람의 풀이
class Solution {
public int solution(int num1, int num2) {
int answer = 0;
return num1 * 1000 / num2;
}
}
- 불필요한 변수 선언 없이 연산
- 'num1 * 1000 / num2' 정수 연산만 사용 > 특정 경우 소수점 이하 값이 무시될 수 있음.
ex) num1 = 7, num2 = 3
< 다른 사람의 풀이>
return 7 * 1000 / 3 = 2333;
// 실제 2333.3333 > 정수 연산에서는 소수점 이하를 무시함
<나의 풀이>
(int)((double)7 / 3 * 1000) = (int)(2.3333 * 1000) = 2333;