두 수의 나눗셈
https://school.programmers.co.kr/learn/courses/30/lessons/120806
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1) 문제
1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요.
0 < num1 ≤ 100
0 < num2 ≤ 100
2) 예시
num1 | num2 | result |
---|---|---|
3 | 2 | 1500 |
7 | 3 | 2333 |
1 | 16 | 62 |
입출력 예 #1
num1이 3, num2가 2이므로 3 / 2 = 1.5에 1,000을 곱하면 1500이 됩니다.
입출력 예 #2
num1이 7, num2가 3이므로 7 / 3 = 2.33333...에 1,000을 곱하면 2333.3333.... 이 되며, 정수 부분은 2333입니다.
입출력 예 #3
num1이 1, num2가 16이므로 1 / 16 = 0.0625에 1,000을 곱하면 62.5가 되며, 정수 부분은 62입니다.
3) 풀이
1. 클래스 선언을 해줍니다
● class Solution {
클래스명은 대문자로 시작해야하고, 정답이라는 의미로 Solution이라는 단어를 사용하였습니다.
2. 메소드 선언을 해줍니다.
● public int solution(int num1, int num2){
정수인 num1, num2를 매개변수로 사용하는 solution 메소드를 선언해줍니다.
메소드의 결과값인 solution 또한 정수값으로 나오므로, 데이터 타입은 모두 int로 해줍니다.
3. 두 수를 나누고 1000을 곱해준 값을 result라는 변수값으로 저장되게하고, 초기값 0을 이용하여 초기화해줍니다.
● int result = 0;
4. 문제의 제한사항에서 num1 및 num2는 0 이상 100 이하이므로 조건문 if를 사용하여줍니다.
● if (0 < num1 && num1 <= 100 && 0 < num2 && num2 <= 100) {
result = (int) ((double) num1 / num2 * 1000);
}
※ double 및 int로 형변환
먼저 실수인 double로 형변환한 이유를 설명드리겠습니다.
정수 / 정수는 정수의 값이 나오게 됩니다. ( '/'는 나눈 이후 나오는 몫만 남기고, 나머지는 버립니다)
만약 num1 = 3, num2 = 2 라면 3/2를 시행하게되고, 1 * 1000을 하여 1000이라는 값이 나오게됩니다.
하지만 실제로는 3 / 2 는 1.5이고 1000을 곱해주면 1500이라는 값이 나와야합니다.
이러한 오차를 방지하기위해, num1 값을 double 실수로 형변환해주어서 실수 / 정수를 시행하여 실수 값이 나오도록 해줍니다.
그리고나서, int로 정수 변환을 해주어 최종적인 결과를 도출해내면 됩니다.
5. 결과값으로 나온 것을 result로 반환해줍니다.
● return result;
4) 코드
class Solution {
public int solution(int num1, int num2) {
int result = 0;
if (0 < num1 && num1 <= 100 && 0 < num2 && num2 <= 100) {
result = (int) ((double) num1 / num2 * 1000);
}
return result;
}
}
'Programmers Coding Test > Java' 카테고리의 다른 글
[프로그래머스 120831] Java - 코딩테스트 입문 / 짝수의 합 (1) | 2024.01.23 |
---|---|
[프로그래머스 120829] Java - 코딩테스트 입문 / 각도기 (0) | 2024.01.23 |
[프로그래머스 120802] Java - 코딩테스트 입문 / 두 수의 합 (1) | 2024.01.22 |
[프로그래머스 120807] Java - 코딩테스트 입문 / 숫자 비교하기 (1) | 2024.01.22 |
[프로그래머스 120820] Java - 코딩테스트 입문 / 나이 출력 (0) | 2024.01.22 |