문제
정수
num1
과 num2
가 매개변수로 주어질 때, num1
을 num2
로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요.
제출한 코드
class Solution {
public int solution(int num1, int num2) {
int answer = 0;
double answer2 = ((double)num1 / num2) * 1000;
return (int)answer2;
}
}
num1 과 num2 를 나눈 값을 구한 뒤 1,000을 곱하라 하였습니다.
(double) num1 / num2 를 이용해 나눗셈을 정확히 하고, 나머지를 포함한 정확한 값을 얻어냅니다.
이후 나눈 값에 1,000을 곱하라 하였으니 ((double) num1 / num2) 에 *1000을 하여 식을 정립합니다.
((double) num1 / num2) * 1000 | 제가 만든 식은 double 타입의 데이터를 나타내게 되어
int 타입의 answer에는 결과를 넣을 수 없어서 doubl 타입의 answer2를 만들어 값을 넣고
return 때 (int)answer2; 를 통해 형변환 시킨 데이터를 제출했습니다.
이렇게 되었을 때, 다시 제 코드를 살펴보니 기존에 있던 int answer = 0 ; 코드가 쓸모없어져서,
int answer를 이용한 코드로 다시 만들어야겠다고 생각했습니다.
수정한 코드
class Solution {
public int solution(int num1, int num2) {
int answer = 0;
answer = (int)(((double)num1 / num2) * 1000);
return answer;
}
}
double 타입의 answer2를 만들지 않고,
return 때 했던 (int) 형 변환을 시점을 (((double)num1 / num2) * 1000); 에서
바로 int 타입으로 형변환 하는 식으로 고쳐서
answer를 지속적으로 사용한 코드로 다시 만들었습니다.
Share article