새소식

Programmers Coding Test/Java

[프로그래머스 120806] Java - 코딩테스트 입문 / 두 수의 나눗셈

  • -

 

두 수의 나눗셈

 

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

1)  문제

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

 

 

2)  예시

 

 

Result Table
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;
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.