풀이1(강사님)
package kosta.Test;
import java.util.Arrays;
import java.util.Scanner;
public class Test01_갤러그3_강사님 {
public static int deep(int a, int b,int day) {
if(b>a) {
return day;
}else {
return deep(2*a,3*b,day+1);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan=new Scanner(System.in);
StringBuffer sb=new StringBuffer();
int t=scan.nextInt(); //3을 입력할 것이다
for (int i = 0; i < t; i++) {
int a=scan.nextInt();
int b=scan.nextInt();
sb.append("#"+(i+1)+" "+deep(a,b,0));
sb.append("\n");
}
System.out.println(sb);
}
}
풀이2(내가 이용한 재귀함수)
package kosta.Test;
import java.util.Arrays;
import java.util.Scanner;
public class Test01_갤러그2_재귀함수이용 {
public static String f(int i, int[][] arr) {
if(i<arr.length) {
int num=1;
while(true) {
arr[i][0]=2*arr[i][0];
arr[i][1]=3*arr[i][1];
if(arr[i][0]>arr[i][1]) {
num++;
}else {
break;
}
}
return "#"+(i+1)+". "+num+"\n"+(f(i+1,arr));
}else {
return "";
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan=new Scanner(System.in);
// System.out.print("시도할 횟수:");
int n=scan.nextInt();
int[][] arr=new int[n][2];
// System.out.println(n+", 2 배열 생성 완료");
int num;
for (int i = 0; i < arr.length; i++) {
// System.out.print("종현이 점수:");
arr[i][0]=scan.nextInt();
// System.out.print("종원이 점수:");
arr[i][1]=scan.nextInt();
}//첫번째 for문 끝 점수가 담긴 배열 생성
System.out.println(f(0,arr));
}
}
풀이3(그냥 재귀함수 없이)
package kosta.Test;
import java.util.Arrays;
import java.util.Scanner;
public class Test01_갤러그 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan=new Scanner(System.in);
// System.out.print("시도할 횟수:");
int n=scan.nextInt();
int[][] arr=new int[n][2];
// System.out.println(n+", 2 배열 생성 완료");
int num;
for (int i = 0; i < arr.length; i++) {
// System.out.print("종현이 점수:");
arr[i][0]=scan.nextInt();
// System.out.print("종원이 점수:");
arr[i][1]=scan.nextInt();
}//첫번째 for문 끝 점수가 담긴 배열 생성
for (int i = 0; i < arr.length; i++) {
num=1;
while(true) {
arr[i][0]=2*arr[i][0];
arr[i][1]=3*arr[i][1];
if(arr[i][0]>arr[i][1]) {
num++;
}else {
break;
}
}
// System.out.println((i+1)+"번째 case="+num+"번");
System.out.println("#"+(i+1)+" "+num);
}
}
}
'JAVA > 수업 Test' 카테고리의 다른 글
랜덤 숫자 up down 게임 (0) | 2021.02.01 |
---|---|
숫자 야구 게임(내방법) (0) | 2021.02.01 |
숫자 야구 게임(강사님방법) (0) | 2021.02.01 |