공통 코드
class Solution {
public int solution(int num1, int num2) {
int answer = 0;
return answer;
}
}
코드 해석
솔루션 클래스 안에 리턴 타입이 정수인 솔루션 메서드가 있다
정수만 담을 수 있는 매개변수 num1, num2 두 개가 있다
인트만 담을 수 있는 변수 answer에 0을 넣겠다 answer를 리턴해라
문제
정수 num1과 num2가 주어질 때, num1에서 num2를 뺀 값을 return하도록 soltuion 함수를 완성해주세요.
문제 해석(문제가 원하는 것)
매개변수 num1과 num2에 인자로 넘어온 값을 넣었을 때 둘을 뺀 값을 리턴하게 하면 된다
즉, 정수의 차를 리턴해라
문제 해결 과정
인자로 넘어온 정수 num1과 num2의 차를 구하려면? 뺄셈을 하면 된다
리턴 밸류에 인자값 두개를 직접 빼는 식을 넣어준다
class Solution {
public int solution(int num1, int num2) {
return num1 - num2;
}
}
문제
정수 num1, num2가 매개변수 주어집니다. num1과 num2를 곱한 값을 return 하도록 solution 함수를 완성해주세요.
문제 해석(문제가 원하는 것)
매개변수 num1과 num2에 인자로 넘어온 값을 넣었을 때 둘을 곱한 값을 리턴하게 하면 된다
즉, 정수 두개의 곱을 리턴해라
문제 해결 과정
인자로 넘어온 정수 num1과 num2의 곱을 구하려면? 곱셈식으로 풀면 된다
리턴 밸류에 인자값 두개를 직접 곱하는 식을 넣어준다
class Solution {
public int solution(int num1, int num2) {
return num1 * num2;
}
}
문제
정수 num1, num2가 매개변수로 주어질 때, num1을 num2로 나눈 몫을 return 하도록 solution 함수를 완성해주세요.
문제 해석(문제가 원하는 것)
매개변수 num1과 num2에 인자로 넘어온 값을 넣었을 때 둘을 나누고 그 몫을 리턴하게 하면 된다
즉, 정수를 나눈 몫을 리턴해라
문제 해결 과정
인자로 넘어온 정수 num1과 num2의 몫을 구하려면?
리턴 밸류에 인자값끼리 나누고 그 몫을 구하는 연산자(/)를 num1과 num2 사이에 넣어주면 된다
class Solution {
public int solution(int num1, int num2) {
int answer = 0;
return num1 / num2;
}
}
문제
정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요.
문제 해석(문제가 원하는 것)
정수를 나눈 값에 1,000을 곱한 후 정수 부분을 리턴해라
정수를 나눈 값이 실수가 나오면 그 실수를 1,000에 곱해서 정수 부분만 리턴해라
문제 해결 과정
말 그대로 인자로 넘어온 정수를 몫을 구하는 연산자로 나눈 후 곱하는 연산자로 1000을 곱하게 했는데 원하는 결과가 나오지 않았다
이유는? 나눠진 값이 실수였을 때 실수까지 다 곱하지 않고 정수 부분만 곱했기 때문이다
인자로 넘어온 정수 num1을 num2로 나눈 값이 정수라면 나눈 값 정수와 1,000을 곱한 정수가 리턴 된다 → 이 부분은 문제가 되지 않았다
하지만 나눠진 값이 실수라면?
리턴 타입과 매개변수에 정수만 담을 수 있게 해놓았기때문에 정수 부분만 1,000을 곱하게 된다
3을 2로 나누면 1.5라는 값이 나오는데 1.5를 다 곱하지 않고
소수점 앞 정수 부분 1과 1,000을 곱하게 되는 것이다
다 곱하게 하려면?
정수는 실수에 포함되기 때문에 리턴 타입과 매개변수 타입을 실수(double)로 바꿔보았다
실수 타입으로 바꾸고 나눠진 값 전체와 1,000을 곱할 수 있게됐다
또 생긴 문제
나눠진 값이 나머지가 계속 생기는 값이었을 때(1.66666..) 정수 부분만 리턴하지 않고 실수 부분까지 리턴하게 된다
원하는 것은 정수 부분만 리턴하는 것이기 때문에 리턴 밸류의 소숫점 부분은 버리면 되지 않을까?
소숫점을 버리는 객체를 이용해서 버려줬더니 정수 부분만 리턴이 되었다
class Solution {
public double solution(double num1, double num2) {
return Math.floor(num1 / num2 * 1000);
}
}