문제 설명
정수 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 |