-
[Java 실습] Baby-ginJava/Java 실습 2022. 7. 12. 09:52
긴가민가 하며 배우며 만든 코드입니다.
열심히 공부해야겠습니다..
+ 수정했습니다.
package BabyGin; import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class BabyGin { public static void main(String[] args) { ArrayList<Integer> aList = 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++) { // split한 내용을 ArrayList에 추가 aList.add(Integer.parseInt(str[i])); } for(int i=1; i<5; i++) { if(babyGin(aList, i)) break; } } static boolean babyGin(ArrayList<Integer> aList, int n) { // 클론을 통해 원래 ArrayList가 지워지는 것을 방지 ArrayList<Integer> temp = (ArrayList<Integer>)aList.clone(); System.out.println(temp); switch(n) { case 1: if(run(temp) && triplete(temp)) { System.out.println("baby-gin!"); return true; } break; case 2: if(run(temp) && run(temp)) { System.out.println("baby-gin!"); return true; } break; case 3: if(triplete(temp) && run(temp)) { System.out.println("baby-gin!"); return true; } break; case 4: if(triplete(temp) && triplete(temp)) { System.out.println("baby-gin!"); return true; } break; } return false; } // public static void disp(ArrayList<Integer> aList) { // if(triplete(aList) && run(aList)) { // System.out.print("baby-gin~"); // } if(run(aList) && run(aList)) { // System.out.print("baby-gin~"); // } if(triplete(aList) && triplete(aList)) { // System.out.print("baby-gin~"); // } if(run(aList) && triplete(aList)) { // System.out.print("baby-gin~"); // } // } public static boolean triplete(ArrayList<Integer> b) { System.out.print("triplete" + " "); for(int i=0; i<b.size(); i++) { // Collection 안에 있는 객체가 몇번 등장했는지를 return 해준다. if(Collections.frequency(b, b.get(i))>=3) { for(int j=0;j<3;j++) b.remove(b.indexOf(b.get(i))); return true; } } return false; } public static boolean run(ArrayList<Integer> a) { System.out.print("run" + " "); for(int i=0; i<8; i++) { // 연속된 수 = run if(a.contains(i) && a.contains(i+1) && a.contains(i+2)) { a.remove(a.indexOf(i)); a.remove(a.indexOf(i+1)); a.remove(a.indexOf(i+2)); return true; } } return false; } }
'Java > Java 실습' 카테고리의 다른 글
[Java 실습] 스택 후위 표기 계산기 (0) 2022.07.14 [Java 실습] 이진 검색 재귀 함수 응용 (0) 2022.07.13 [Java 실습] 성적 관리 프로그램 (0) 2022.07.12 [Java 실습] 정돈된 수와 개수 출력하기 (0) 2022.07.11 [Java 실습] 입력한 숫자 전체출력(순열) + 가장 작은 수 반환 (0) 2022.07.11