java
스도쿠는 숫자퍼즐로, 가로 9칸 세로 9칸으로 이루어져 있는 표에 1 부터 9 까지의 숫자를 채워넣는 퍼즐이다. 같은 줄에 1 에서 9 까지의 숫자를 한번씩만 넣고, 3 x 3 크기의 작은 격자 또한, 1 에서 9 까지의 숫자가 겹치지 않아야 한다. 입력으로 9 X 9 크기의 스도쿠 퍼즐의 숫자들이 주어졌을 때, 겹치는 숫자가 없을 경우, 1을 정답으로 출력하고 그렇지 않을 경우 0 을 출력하는 제
반복문과 조건문을 활용해 문제를 풀었다.
비슷한 유형의 문제를 더 풀어볼 계획이다.
import java.util.Scanner;
import java.io.FileInputStream;
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T;
T=sc.nextInt();
for(int test_case = 1; test_case <= T; test_case++)
{
int[][] sudoku = new int[9][9];
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
sudoku[i][j] = sc.nextInt();
}
}
boolean valid = true;
for (int i = 0; i < 9 && valid; i++) {
boolean[] rowCheck = new boolean[10];
boolean[] colCheck = new boolean[10];
for (int j = 0; j < 9; j++) {
int rowVal = sudoku[i][j];
int colVal = sudoku[j][i];
if (rowCheck[rowVal] || colCheck[colVal]) {
valid = false;
break;
}
rowCheck[rowVal] = true;
colCheck[colVal] = true;
}
}
for (int block = 0; block < 9 && valid; block++) {
boolean[] blockCheck = new boolean[10];
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
int x = (block / 3) * 3 + i;
int y = (block % 3) * 3 + j;
int val = sudoku[x][y];
if (blockCheck[val]) {
valid = false;
break;
}
blockCheck[val] = true;
}
}
}
System.out.println("#" + test_case + " " + (valid ? "1" : "0"));
}
}
}
JavaHTTP 상태코드란 무엇인가? HTTP 상태코드(HTTP Status Code)는 서버가 클라이언트의 요청을 처리한 결과를 수치화된 코드로 나타내는…
HTTP란 무엇인가? HTTP(Hypertext Transfer Protocol)는 웹에서 데이터를 주고받기 위해 사용하는 응용 계층 프로토콜입니다. 우리가 브라우저에서…
HTTP란 무엇인가? HTTP(Hypertext Transfer Protocol)는 인터넷에서 웹 브라우저와 웹 서버가 서로 통신하기 위해 사용하는 프로토콜입니다.…
들어가며 우리가 인터넷에서 웹사이트에 접속할 때 가장 먼저 하는 일은 브라우저 주소창에 어떤 문자열을 입력하는…
인터넷 네트워크란? "인터넷(Internet)"이라는 단어는 "인터네트워크(Internetwork)"의 줄임말입니다. 즉, 여러 개의 네트워크가 상호 연결되어 전 세계적으로 하나의…