반응형
기초 코딩테스트를 풀고 있었는데 확인해 보니 더 쉬운 난이도인 입문이 있었다.
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);
반응형
'programming > JAVA' 카테고리의 다른 글
[코딩테스트] 문자열 반복해서 출력하기 (0) | 2023.11.01 |
---|---|
[코딩테스트] a와 b 출력하기 (0) | 2023.11.01 |
[코딩테스트] 문자열 출력하기 (0) | 2023.11.01 |
[jshell] 반환값 (2) | 2023.10.31 |
[jshell] 실행, 종료, 구구단 만들기 (0) | 2023.10.31 |