티스토리 뷰
//알고리즘
1. 시뮬레이션? 완탐?
2. 내 빙고판과 사회자가 부르는 수의 배열을 만들어 저장 후 하나씩 지워가면서 빙고가 있는지 없는지 검사.
3. 3개가 빙고가 되려면 최소12개 정도부터 검사를 시작하면됨.
4. 행, 열, 대각선 각각 검사하여 빙고의 개수를 구해야 함.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class 빙고_2578 {
static int[][] map = new int[5][5];
static int[][] ans = new int[5][5];
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 내 빙고판
for (int i = 0; i < 5; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
for (int j = 0; j < 5; j++) {
map[i][j] = Integer.parseInt(st.nextToken());
}
}
// 사회자가 부를 숫자
for (int i = 0; i < 5; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
for (int j = 0; j < 5; j++) {
ans[i][j] = Integer.parseInt(st.nextToken());
}
}
// 빙고시작.
System.out.println(cal());
}
private static int cal() {
int cnt = 0;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
cnt++;
L: for (int r = 0; r < 5; r++) {
for (int c = 0; c < 5; c++) {
if (map[r][c] == ans[i][j]) {
map[r][c] = 0;
break L;
}
}
} // 내 빙고판 지우는 for문 끝
// 빙고 검사. 최소 12개.
if (cnt >= 10) {
int bingo = 0;
for (int row = 0; row < 5; row++) {
int rnum = 0;
int cnum = 0;
// 행검사
for (int col = 0; col < 5; col++) {
rnum += map[row][col];
}
if (rnum == 0)
bingo++;
if (bingo >= 3)
return cnt;
// 열검사
for (int col = 0; col < 5; col++) {
cnum += map[col][row];
}
if (cnum == 0)
bingo++;
if (bingo >= 3)
return cnt;
}
// 대각선검사
int num_1 = map[0][0] + map[1][1] + map[2][2] + map[3][3] + map[4][4];
if (num_1 == 0)
bingo++;
if (bingo >= 3)
return cnt;
int num_2 = map[0][4] + map[1][3] + map[2][2] + map[3][1] + map[4][0];
if (num_2 == 0)
bingo++;
if (bingo >= 3)
return cnt;
}
}
} // 사회자가 부르는 번호 끝
return cnt;
}
private static void print(int[][] map) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(map[i][j] + " ");
}
System.out.println();
}
}
}
'Algorithm' 카테고리의 다른 글
백준_사탕게임_3085 (0) | 2020.10.12 |
---|---|
백준_빵집_3109 (0) | 2020.10.11 |
백준_블랙잭_2798 (0) | 2020.10.08 |
백준_1로 만들기_1463 (0) | 2020.10.07 |
백준_수 이어가기_2635 (0) | 2020.10.06 |