//import java.util.Scanner;
import java.util.Random;
public class QuizMethod {
public static void main(String[] args) {
// Scanner sc = new Scanner(System.in);
// // 이름, 나이, 성별, 키를 입력받아서 반환하는 각각의 메서드를 구현하세요
// String who = name(sc);
// int old = age(sc);
// String mw =gender(sc);
// double h =height(sc);
//
// // 출력
// System.out.println();
// System.out.println("--- 입력정보 ---");
// System.out.println("이름 : " + who);
// System.out.println("나이 : " + old + '세');
// System.out.println("성별 : " + mw);
// System.out.println("키 : " + h + "cm");
// 정수 하나를 입력받아서 반환하는 메서드를 구형하세요.
// 위 메서드를 사용해서 변수 2개를 각각 초기화 합니다.
// 두개의 변수를 사용해서, 두 수 중 큰 수를 찾아서 반환하는 메서드를 구현하세요.
// → 변수에 들어가는 값은 1이상의 값만 가능하고, 같은 값이면 0을 반환.
// int a1 = rangeInput(sc, 1, 10);
// int a2 = rangeInput(sc, 1, 10);
//
// System.out.println();
//
// int res = compare(a1, a2);
// System.out.println("bigger than (same 0): " + res);
// 생성하려는 숫자(정수) 범위의 시작, 마지막 값을 넘겨 받아서,
// 해당 범위의 랜덤값을 반환하는 메서드를 구현하세요
Random random = new Random();
// int rv = rangeRandom(random, 1, 10);
// System.out.println("rv : " + rv);
// 아래의 배열에 한번에 같은 값이 들어갈때까지 진행하는 메서드를 구현하세요.
// → 값 : 1 ~ 5
int[] data = new int[3];
data = samecost(random, data);
for(int i=0;i<data.length;i++) {
System.out.print(data[i] + " ");
}
// sc.close();
}
public static int[] samecost(Random random, int[] arr) {
int cnt = 0;
for(int i=0;i<arr.length;i++) {
arr[i] = random.nextInt(5 - 1 + 1) + 1;
if ((i>0) && arr[i]!=arr[i-1]) i--;
cnt++;
}
System.out.println("cnt :" + cnt);
return arr;
}
// public static int rangeRandom(Random random, int start, int end) {
// if(end < start) {
// System.out.println("- range error -");
// return -1;
// }
// return random.nextInt(end - start + 1) + start;
// }
// public static int compare(int n1, int n2) {
// int big = n1 > n2 ? n1 : n2;
// if (n1==n2) big=0;
// return big;
// }
//
// public static int rangeInput(Scanner sc, int start, int end) {
// int value = 0;
// while(true) {
// System.out.print(start + " ~ " + end + " 사이의 값 입력 > ");
// value = sc.nextInt();
// if(value >= start && value <= end) break;
// }
// return value;
// }
//
// public static String name(Scanner sc) {
// System.out.print("이름을 입력하세요 > ");
// String who = sc.next();
// return who;
// }
//
// public static int age(Scanner sc) {
// System.out.print("나이를 입력하세요 > ");
// int old = sc.nextInt();
// return old;
// }
//
// public static String gender(Scanner sc) {
// System.out.print("성별을 입력하세요 > ");
// String mw = sc.next();
// return mw;
// }
//
// public static double height(Scanner sc) {
// System.out.print("키를 입력하세요 > ");
// double h = sc.nextDouble();
// return h;
// }
}
import java.util.Random;
import java.util.Scanner;
public class QuizMethod {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// // 이름, 나이, 성별, 키를 입력받아서 반환하는 각각의 메서드를 구현하세요
// String name = inputString("이름 입력 > ", scanner);
// int age = inputInteger("나이 입력 > ", scanner);
// char gender = inputCharacter("성별 입력 > ", scanner);
// double height = inputDouble("키 입력 > ", scanner);
//
// System.out.println();
//
// System.out.println("--- 입 력 정 보 ---");
// System.out.println("이름 : " + name);
// System.out.println("나이 : " + age + " 세");
// System.out.println("성별 : " + gender);
// System.out.println("키 : " + height + " cm");
// // 정수 하나를 입력받아서 반환하는 메서드를 구현합니다
// // 위 메서드를 사용해서 변수 2개를 각각 초기화 합니다
// // 두개의 변수를 사용해서, 두수 중 큰수를 찾아서 반환하는 메서드를 구현하세요
// // - 변수에 들어가는 값은 1 이상의 값만 가능하고, 같은 값이면 0 을 반환합니다
// int dataA = rangeInputInt(scanner, 1, 10);
// int dataB= rangeInputInt(scanner, 1, 10);
// int max = findMax(dataA, dataB);
// if(max != 0) {
// System.out.println(dataA + " , " + dataB + " 중 큰수 : " + max);
// } else {
// System.out.println(dataA + " , " + dataB + " 같은수");
// }
// // 생성하려는 숫자(정수) 범위의 시작, 마지막 값을 넘겨 받아서,
// // 해당 범위의 랜덤값을 반환하는 메서드를 구현하세요
// Random random = new Random();
// int rv = rangeRandom(random, 1, 10);
// System.out.println("rv : " + rv);
// 아래의 배열에 한번에 같은 값이 들어갈때까지 진행하는 메서드를 구현하세요
// - 값 : 1 ~ 5
int[] data = new int[3];
sameArray(data);
} // main
public static void setArray(int[] arr, Random random) {
for(int i=0 ; i<arr.length ; i++) {
arr[i] = rangeRandom(random, 1, 5);
}
}
public static void showArray(int[] arr, int count) {
System.out.print(count + " 회 : ");
for(int i=0 ; i<arr.length ; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
public static boolean sameCheck(int[] arr) {
int p = arr[0];
for(int i=1 ; i<arr.length ; i++) {
if(arr[i] != p)
return false;
}
return true;
}
public static void sameArray(int[] arr) {
Random random = new Random();
int count = 0; // 시도 횟수
while(true) {
++count;
setArray(arr, random); // 데이터 입력
showArray(arr, count); // 데이터 출력
if(sameCheck(arr)) // 데이터 확인 ( 성공 : true, 실패 : false )
break;
}
}
public static int rangeRandom(Random random, int start, int end) {
if(end < start) {
System.out.println("- range error -");
return -1;
}
return random.nextInt(end - start + 1) + start;
}
public static int findMax(int a, int b) {
if(a > b) return a;
else if(b > a) return b;
else return 0;
}
public static int rangeInputInt(Scanner scanner, int start, int end) {
int value = 0;
while(true) {
System.out.print(start + " ~ " + end + " 사이의 값 입력 > ");
value = scanner.nextInt();
if(value >= start && value <= end)
break;
}
return value;
}
public static double inputDouble(String message, Scanner scanner) {
System.out.print(message);
double value = scanner.nextDouble();
return value;
}
public static char inputCharacter(String message, Scanner scanner) {
System.out.print(message);
char value = scanner.next().charAt(0);
return value;
}
public static int inputInteger(String message, Scanner scanner) {
System.out.print(message);
int value = scanner.nextInt();
return value;
}
public static String inputString(String message, Scanner scaner) {
System.out.print(message);
String value = scaner.next();
return value;
}
}