Created
January 3, 2016 02:57
-
-
Save Wooking0310/6fc27b2df1ee47412650 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import java.util.Scanner; | |
| import java.util.ArrayList; | |
| /** | |
| * Created by Wook on 2015-12-29. | |
| */ | |
| public class Sudoku{ | |
| public static void main(String[] args) { | |
| Scanner sc = new Scanner(System.in); | |
| ArrayList<Integer> arrList = new ArrayList<>(); | |
| System.out.print("원하는 크기를 입력하세요 : "); | |
| int size = sc.nextInt(); | |
| int[] arrSudoku = new int[size]; | |
| for (int i = 1; i <= size; i++) | |
| arrSudoku[i - 1] = i; | |
| sudoku(arrSudoku, size, 0, arrList); | |
| sudokuPrint(arrList, size); | |
| } | |
| public static void sudoku(int[] arr, int size, int pStart, ArrayList<Integer> arrList) { | |
| if (pStart == size) { // 한번 pStart 가 k로 도달하면 반복문 끝. | |
| for (int i = 0; i < size; i++) { | |
| arrList.add(arr[i]); | |
| } | |
| // System.out.print(arrList); | |
| // arrList.clear(); | |
| // System.out.println(); | |
| // System.out.println(count); | |
| } | |
| for (int i = pStart; i < size; i++) { | |
| swap(arr, i, pStart); | |
| sudoku(arr, size, pStart + 1, arrList); | |
| //sudoku(arr, size, pStart+1, arrList, count+1); | |
| //swap(arr, i, pStart); | |
| } | |
| // System.out.println(pStart); | |
| } | |
| // swap함수. 임의의 공간 temp를 만들고 이를 통해 인덱스 i와 j의 값을 교환. | |
| public static void swap(int[] arr, int i, int j) { | |
| int temp = arr[i]; | |
| arr[i] = arr[j]; | |
| arr[j] = temp; | |
| } | |
| public static void sudokuPrint(ArrayList<Integer> arrList, int size) { | |
| // System.out.println(arrList); | |
| // Random random = new Random(); | |
| // int cloneNum = 0; | |
| int count = 0; | |
| while (count != size * size) { | |
| // int ranNum = random.nextInt(arrList.size()); | |
| // if(cloneNum != ranNum) { | |
| System.out.print("[" + arrList.get(count) + "]\t"); | |
| // } | |
| // cloneNum = ranNum; | |
| // arrList.remove(count); | |
| count++; | |
| if (count % size == 0) | |
| System.out.println(); | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment