일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- SWEA
- 페이코 초대코드
- 배열
- 플러터
- 페이코 추천인코드
- php 프로그래밍 입문 연습문제
- php 프로그래밍 입문 3판
- 최단 경로
- php
- 파이썬
- 자바
- php 프로그래밍 입문 솔루션
- 백준
- 한정 분기
- 자바 스프링
- php 프로그래밍 입문
- C
- JAVA SPRING
- 페이코 친구코드
- php 프로그래밍 입문 예제
- spring
- C언어
- 플러터 개발환경 설정
- php 프로그래밍
- 스프링
- php 프로그래밍 입문 문제풀이
- Flutter
- programmers
- 페이코 추천인
- Java
Archives
- Today
- Total
04-12 00:01
ImJay
[SWEA/Java] 1974. 스도쿠 검증 본문
반응형
[SWEA/Java] 1974. 스도쿠 검증
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
해설

풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
// 테스트 케이스의 개수 T 입력
int test_case = Integer.parseInt(br.readLine());
// 각 테스트 케이스에 대한 반복
L: for (int t = 1; t <= test_case; t++) {
int[][] graph = new int[9][9];
// 9x9 크기의 스도쿠 퍼즐 데이터 입력
for (int r = 0; r < 9; r++) {
String row = br.readLine();
StringTokenizer st = new StringTokenizer(row);
for (int c = 0; c < 9; c++) {
graph[r][c] = Integer.parseInt(st.nextToken());
}
}
// 각 행에 대한 검사
for (int r = 0; r < 9; r++) {
boolean[] status = new boolean[9];
for (int c = 0; c < 9; c++) {
status[graph[r][c] - 1] = true;
}
// 중복된 숫자가 있는지 확인
for (int i = 0; i < 9; i++) {
if (!status[i]) {
sb.append("#" + t + " 0\n");
continue L;
}
}
}
// 3x3 작은 격자에 대한 검사
for (int i = 0; i < 9; i += 3) {
boolean[] status = new boolean[9];
for (int r = i; r < i + 3; r++) {
for (int c = i; c < i + 3; c++) {
status[graph[r][c] - 1] = true;
}
}
// 중복된 숫자가 있는지 확인
for (int j = 0; j < 9; j++) {
if (!status[j]) {
sb.append("#" + t + " 0\n");
continue L;
}
}
}
// 각 열에 대한 검사
for (int r = 0; r < 9; r++) {
boolean[] status = new boolean[9];
for (int c = 0; c < 9; c++) {
status[graph[c][r] - 1] = true;
}
// 중복된 숫자가 있는지 확인
for (int i = 0; i < 9; i++) {
if (!status[i]) {
sb.append("#" + t + " 0\n");
continue L;
}
}
}
// 중복된 숫자가 없는 경우 정답 출력
sb.append("#" + t + " 1\n");
}
// 최종 결과 출력
System.out.println(sb);
}
}
반응형
'SW Expert Academy > D2' 카테고리의 다른 글
[SWEA/Java] 1954. 달팽이 숫자 (0) | 2024.02.04 |
---|---|
[SWEA/Java] 2001. 파리 퇴치 (1) | 2024.01.23 |
[SWEA/Java] 1940. 가랏! RC카! (0) | 2024.01.21 |
[SWEA/Java] 1859. 백만 장자 프로젝트 (0) | 2024.01.20 |
[SW Expert Academy] 1974. 스도쿠 검증 (1) | 2024.01.02 |
Comments