[프로그래머스][C++] 두 수의 나눗셈
두 수의 나눗셈
문제 링크
분석
/
(나누기 연산자)와 *
(곱하기 연산자)를 사용해 값을 구하는 문제입니다.
나눌 때 왼쪽 피연산자와 오른쪽 피연산자가 중요합니다.
해당 문제의 경우 num1
이 왼쪽 피연산자로 분자이며, num2
가 오른쪽 피연산자로 분모입니다.
두 정수는 자료형이 int
입니다.
이 경우 나누기를 하면 소수부는 제외되므로 자료형을 float 혹은 double로 형변환을 해주어야 합니다.
num1
이나 num2
중 하나만 형변환 해도 되며, 이 경우 컴파일러에서 데이터 손실을 방지하기 위해 형변환 한 자료형으로 결과값이 나옵니다.
형변환을 하지 않고도 문제를 해결 할 수 있을 것으로 보이는데, num1
에 미리 1,000을 곱한다면 같은 결과값이 나옵니다.
문제의 결과값에 소수부가 필요 없습니다.
형변환을 해 float 혹은 double에서 나눗셈을 하는 것 보다 정수 자료형에서 나눗셈을 하는게 효율적입니다.
이런 이유로 저는 형변환을 하지 않고 문제를 해결하겠습니다.
풀이
int solution(int num1, int num2) {
int answer = (num1 * 1000)/ num2;
return answer;
}
성능 요약
테스트 1 〉 통과 (0.01ms, 3.68MB)
테스트 2 〉 통과 (0.01ms, 4.21MB)
테스트 3 〉 통과 (0.01ms, 3.67MB)
테스트 4 〉 통과 (0.01ms, 3.64MB)
테스트 5 〉 통과 (0.01ms, 4.02MB)
테스트 6 〉 통과 (0.01ms, 4.16MB)
테스트 7 〉 통과 (0.01ms, 4.21MB)
테스트 8 〉 통과 (0.01ms, 4.43MB)
테스트 9 〉 통과 (0.01ms, 3.69MB)
테스트 10 〉 통과 (0.01ms, 4.22MB)
테스트 11 〉 통과 (0.01ms, 4.22MB)
테스트 12 〉 통과 (0.01ms, 4.21MB)
테스트 13 〉 통과 (0.01ms, 4.2MB)
테스트 14 〉 통과 (0.01ms, 4.16MB)
테스트 15 〉 통과 (0.02ms, 3.59MB)
테스트 16 〉 통과 (0.01ms, 4.16MB)
테스트 17 〉 통과 (0.01ms, 4.02MB)
테스트 18 〉 통과 (0.01ms, 4.21MB)
댓글남기기