문제 풀이 및 개발 공간

[백준] 2578번 빙고 문제! (silver 4 본문

백준공부/java

[백준] 2578번 빙고 문제! (silver 4

gomduri43 2023. 4. 28. 09:47

import java.io.*;
import java.util.*;
public class Main{
    public static void main(String[] args) throws IOException {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;
        int[][] board=new int[6][6];
        int answer=0;
        for(int i=1; i<=5; i++){
            st=new StringTokenizer(br.readLine());
            for(int j=1; j<=5; j++){
                board[i][j]=Integer.parseInt(st.nextToken());
            }
        }
        boolean find=false;
        for(int i=0; i<5; i++){
            st=new StringTokenizer(br.readLine());
            for (int j = 0; j < 5; j++) {
                int temp = Integer.parseInt(st.nextToken());
                board = check(board, temp);
                answer++;
                if (i>=2 && bingo(board) >= 3) {
                    find = true;
                    break;
                }
            }
            if(find==true){
                break;
            }
        }
        bw.write(answer+"");
        bw.flush();
    }
    public static int[][] check(int[][] board,int n){
        for(int i=1; i<=5; i++){
            for(int j=1; j<=5; j++){
                if(board[i][j]==n){
                    board[i][j]=0;
                }
            }
        }
        return board;
    }
    public static int bingo(int[][] board){
        int total=0;
        for(int i=1; i<=5; i++){
            if((board[i][1]+board[i][2]+board[i][3]+board[i][4]+board[i][5])==0) {
                total++;
            }
            if((board[1][i]+board[2][i]+board[3][i]+board[4][i]+board[5][i])==0){
                total++;
            }
        }
        if(board[3][3]==0){
            if((board[1][1]+board[2][2]+board[3][3]+board[4][4]+board[5][5])==0){
                total++;
            }
            if((board[5][1]+board[4][2]+board[3][3]+board[2][4]+board[1][5])==0){
                total++;
            }
        }
        return total;
    }
}