반응형

기초 코딩테스트를 풀고 있었는데 확인해 보니 더 쉬운 난이도인 입문이 있었다.

day1 사칙연산은 아주 쉽기 때문에 넘어가고 day2에 첫 번째인 두 수의 나눗셈에서 형변환이 있어서 정리하게 되었다.

 

문제 설명


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

 

입출력 예

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입니다.

 

답안



class Solution {
    public int solution(int num1, int num2) {
        double i = num1; // num1 double로 형변환
        double a = num2; // num2 double로 형변환
        double doubleValue = (i/a)*1000;
        int answer = (int)doubleValue; // double -> int로 형변환
        return answer;
    }
}

 

double로 형변환을 안 하고 그냥 진행 시 int는 정수값만 표현되기 때문에 소수점은 자연스럽게 사라진다.

그래서 결과값이 다르게 나오기 때문에 double로 변환해 주고 다시 int로 변환하는 과정을 겨쳤다.

 

Int to Double



public class IntToDoubleExample1{  
	public static void main(String args[]){  
		int i=200;  
		double d=i;  
		System.out.println(d);  
	}
}

 

Double to Int



public class DoubleToIntExample1{  
	public static void main(String args[]){  
    double d=10.5;  
    int i=(int)d;  
    System.out.println(i);  
	}
}

// 반올림 하고 싶은 경우 (int) Math.round(d);
// 올림 (int) Math.ceil(d);
// 내림 (int) Math.floor(d);
반응형
복사했습니다!