Code KATA/알고리즘 코드카타

[2024.12.08] 두 수의 나눗셈

iiblueblue 2024. 12. 9. 14:23

문제 설명

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

 

 

제한사항

0<num1<=100

0<num2<=100

 

 

입출력 예

num1 num2 result 설명
3 2 1500 num1이 3, num2가 2이므로 3/2=1.5에 1,000을 곱하면 1500이 됩니다.
7 3 2333 num1이 7, num2가 2이므로 7/3=2.33333...에 1,000을 곱하면 2333.333...이 되며, 정수 부분은 2333입니다.
1 16 62 num1이 1, num2가 16이므로 1/16=0.0625에 1,000을 곱하면 62.5가 되며, 정수 부분은 62입니다.

 

 

문제 풀이

풀이 언어 : C++

#include <string>
#include <vector>

using namespace std;

int solution(int num1, int num2) {
    int answer = 0;
    answer=(double)num1/(double)num2*1000;
    return answer;
}

문제대서 식을 세운다면 answer=num1/num2*1000이겠지만 문제는 num1과 num2가 정수라는데 있다. 정수 나누기 정수 계산에서 결과값은 정수로 나오기 때문에 입출력 예1의 경우 num1/num2의 결과값은 1, 입출력 예2의 경우 결과값으 2가 나오게 된다. 즉 뒤에 소수점은 나오지 않는다. 따라서 정수 나누기 정수가 되지 않도록 num1과 num2의 형변환이 필요하다. 두 매개변수 모두 double로 형변환 후 계산한도록 하였다.

정수 부분을 return하는 것은 결과값 answer가 정수형이라는 것으로 충분히 구현되었다.

 

 

오답노트

처음 풀이하였을 때 정수 나누기 정수의 특징을 까먹고 형변환을 생각하지 못하여 틀렸다.

 

 

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/120806

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

'Code KATA > 알고리즘 코드카타' 카테고리의 다른 글

[2024.12.10] 짝수의 합  (0) 2024.12.10
[2024.12.09] 각도기  (1) 2024.12.09
[2024.12.07] 두 수의 합  (0) 2024.12.09
[2024.12.06] 숫자 비교하기  (0) 2024.12.06
[2024.12.05] 나이 출력  (0) 2024.12.05