Skip to content

Instantly share code, notes, and snippets.

@Wooking0310
Created January 3, 2016 02:57
Show Gist options
  • Select an option

  • Save Wooking0310/6fc27b2df1ee47412650 to your computer and use it in GitHub Desktop.

Select an option

Save Wooking0310/6fc27b2df1ee47412650 to your computer and use it in GitHub Desktop.
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