문제 설명
정수 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로 나누는 간단한 방법으로도 똑같은 결과를 도출할 수 있습니다.
'프로그래머스 > Lv. 0(코딩테스트 입문)' 카테고리의 다른 글
[프로그래머스 코딩테스트] 나머지 구하기(Java) (0) | 2023.03.22 |
---|---|
[프로그래머스 코딩테스트] 배열 두 배 만들기(Java) (0) | 2023.03.22 |
[프로그래머스 코딩테스트] 분수의 덧셈(Java) (0) | 2023.03.22 |
[프로그래머스 코딩테스트] 숫자 비교하기(Java) (0) | 2023.03.21 |
[프로그래머스 코딩테스트] Day 1. 사칙연산(Java) (0) | 2023.03.21 |