반응형
베이스 코드
import java.util.*;
import java.lang.*;
import java.io.*;
// The main method must be in a class named "Main".
class Main {
public static void main(String[] args) {
// 스도쿠 게임 프로그래밍
int[][] sudoku = {{1, 4, 2}, {5, 6, 8}, {3, 0, 7}};
final int SIZE = 3; // 스도쿠 배열의 행과 열 크기
int[] iCnt = new int[10]; // 숫자 0~9의 등장 횟수 저장할 배열
int findRow; // 0의 행 위치
int findCol; // 0의 열 위치
int missNo; // 0에 들어갈 수
// 스도쿠 배열 출력
for (int i = 0; i < SIZE; ++i) {
for (int j = 0; j < SIZE; ++j) {
System.out.print(sudoku[i][j] + "\t"); // 현재 값 출력
}
System.out.println();
}
// 0의 위치, 숫자 등장 횟수 구하기
for (int i = 0; i < SIZE; ++i) {
for (int j = 0; j < SIZE; ++j) {
int counter = sudoku[i][j]; // 현재 값을 counter에 저장
iCnt[counter]++; // 인덱스에 접근하여 등장 횟수 증가
// 0의 위치 구하기
if (sudoku[i][j] == 0) {
findRow = i;
findCol = j;
System.out.printf("0은 %d 행 %d 열에 있습니다.\n", findRow, findCol);
}
}
System.out.println();
}
// 0에 들어갈 수 구하기
for (int i = 0; i < iCnt.length; ++i) {
if (iCnt[i] == 0) {
missNo = i;
System.out.println("0에 들어갈 숫자는 " + missNo);
}
}
}
}
카운팅 배열
: 특정 값의 등장 수(빈도)를 셈
int[] iCnt = new int[10]; // JAVA는 배열 생성시 자동으로 0이 초기화 됨
for (int i = 0; i < SIZE; ++i) {
for (int j = 0; j < SIZE; ++j) {
int counter = sudoku[i][j]; // 현재 값을 counter에 저장
iCnt[counter]++; // 인덱스에 접근하여 등장 횟수 증가
}
System.out.println();
}
현재는 스도쿠 숫자를 초기화 시켜놓은 상태, 3일차에 랜덤 번호 생성하여 값을 구할 수 있도록 수정할 예정
반응형
'프로그래밍 > Spring Boot 프로젝트' 카테고리의 다른 글
[Spring Boot 프로젝트] 스도쿠 프로그래밍 - 3 (1) | 2024.12.04 |
---|---|
[Spring Boot 프로젝트] 스도쿠 게임 프로그래밍 - 1 (10) | 2024.11.08 |
항공사 플랫폼 팀 프로젝트_RestTemplate 국가 API 활용 국적 가져오기 (0) | 2023.07.18 |
항공사 플랫폼 팀 프로젝트_비밀번호 변경 기능(BCrypt 라이브러리 사용) (0) | 2023.07.16 |
항공사 플랫폼 팀 프로젝트_마이그레이션 후 쿼리문 수정 (0) | 2023.07.16 |