반응형
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class BabyGin {
public static void main(String args[]){
int cnt = 1;
ArrayList<Integer> list = new ArrayList<Integer>();
Scanner sc = new Scanner(System.in);
System.out.print("6개의 숫자를 입력하세요 : ");
String[] str = sc.next().split(""); //문자열을 배열에 저장
for(int i=0;i<str.length;i++)
list.add(Integer.parseInt(str[i])); //그대로 arraylist 에 저장
System.out.println(list);
for(int i=1;i<5;i++)
if(babyGin(list,i))
break;
}
static boolean babyGin(ArrayList<Integer> list, int n) {
ArrayList<Integer> temp = (ArrayList<Integer>)list.clone();
System.out.println(temp+ "method in");
switch(n) {
case 1:
if(run(temp) && triplete(temp)) {
System.out.println(list + "baby-gin!");
return true; }
break;
case 2:
if(run(temp) && run(temp)) {
System.out.println(list + "baby-gin!");
return true; }
break;
case 3:
if(triplete(temp) && run(temp)) {
System.out.println(list + "baby-gin!");
return true; }
break;
case 4:
if(triplete(temp) && triplete(temp)) {
System.out.println(list + "baby-gin!");
return true; }
break;
}
return false;
}
static boolean run(ArrayList<Integer> temp) {
System.out.println(temp + "run");
for(int i=0;i<8;i++) {
if (temp.contains(i) && temp.contains(i+1) && temp.contains(i+2)) {
temp.remove(temp.indexOf(i));
temp.remove(temp.indexOf(i+1));
temp.remove(temp.indexOf(i+2));
return true;
}
}
return false;
}
static boolean triplete(ArrayList<Integer> temp) {
System.out.println(temp + "triple");
int tmp;
for (int i=0;i<temp.size();i++) {
if (Collections.frequency(temp, temp.get(i)) >= 3) {
tmp = temp.get(i);
for(int j=0;j<3;j++)
temp.remove(temp.indexOf(tmp));
return true;
}
}
return false;
}
}
반응형
'코딩테스트' 카테고리의 다른 글
[JAVA] 이진탐색 재귀함수 구현 (0) | 2022.07.13 |
---|---|
[JAVA] 정수 받아 작은값부터 출력하기 (순열) (0) | 2022.07.11 |
[JAVA] 정돈된 수 출력 (0) | 2022.07.11 |
[JAVA] 입력받은수 가장 작은 수로 변환 (0) | 2022.07.11 |
[JAVA] 로또 당첨 & 모든 경우의 수 출력 (0) | 2022.07.11 |