- 5. 두 수의 나눗셈 : 정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요.
내가 푼 풀이 class Solution { public int solution(int num1, int num2) { double num = (double)num1/num2; int answer = (int)(num*1000); return answer; } }
다른 풀이 int answer = 0; double result = (double)num1/num2*1000 anwer = (int)result; return answer; |
- 6. 숫자 비교하기 : 정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요.
내가 푼 풀이 class Solution { public int solution(int num1, int num2) { int answer = 0; if (num1==num2){ answer = 1; }else{ answer = -1; } return answer; } }
다른 풀이 int answer = (num1==num2)?1:-1; return answer; -------------------------------------------------- if(num1==num2) return 1; else return -1; |
*삼항연산자 : (조건문)참:거짓; -> if~else문을 간략하게 정리할 수 있음.
- 7. 분수의 덧셈 : 첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
내가 푼 풀이 어려워서 풀지 못했다ㅠㅠ(다른 풀이 참고해서 쓴 풀이) class Solution { public int[] solution(int numer1, int denom1, int numer2, int denom2) { int[] answer = new int[2]; int boonja = (numer1*denom2)+(numer2*denom1); int boonmo = denom1*denom2; int max = 0; //최대 공약수 //최대공약수, for문으로 나머지가 0이 될때까지 반복. for(int i=1; i<=boonmo&&i<=boonja; i++){ if(boonja%i==0&&boonmo%i==0){ max = i; } } answer[0] = boonja/max; answer[1] = boonmo/max; return answer; } }
다른 풀이 int[] answer = new int[2]; answer[0] = (numer1*denom2)+(numer2*denom1); //분자 answer[1] = denom1*denom2;
//최소값 구하기 int min = Math.min(answer[0], answer[1]); int max = 1;
//약분하는 수 중 가장 큰 수를 찾기(최대공약수) for(int i=1; i<=min; ; i++){ if(answer[0]%i==0 && answer[1]%i==0){ max=i; } } //약분 answer[0] /= max; answer[1] /= max;
return answer; |
*기약분수 : 분모와 분자가 1 이외에 공약수가 없는 분수
*먼저 두 분수의 분모를 같은 수로 만들어준다. Math.min()을 이용해서 최솟값을 찾은 이후 for문을 이용하여 최대공약수를 찾기! 이때 분자와 분모를 나누었을 때 나머지가 0인 값이어야하므로 조건을 if문을 이용해서 조건을 추가해주어야 한다. 이 중 가장 큰 값을 찾고 분자와 분모 값에 나누어 주면 기약분수가 된다.
- 8. 배열 두 배 만들기 : 정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.
내가 푼 풀이 class Solution { public int[] solution(int[] numbers) { int[] answer = new int [numbers.length]; for(int i=0; i<numbers.length; i++){ answer[i] = numbers[i]*2; } return answer; } }
다른 풀이 for(int i=0; i<numbers.length; i++) { numbers[i]*=2; } return numbers; |
*배열의 길이 : 배열에 저장할 수 있는 전체 항목의 개수. 변수.length로 배열의 길이를 읽을 수 있다.