본문 바로가기

정올문제소스코드

1031 : 빙고

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
 
public class Main {
 
    public static int saheja[][] = new int [6][6];
    public static int bingopan[][] = new int [6][6];
    public static int bingocnt = 0;
     
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
     
        int i, j;
        int sucnt = 0;
        int flag = 0;
        for (i = 0; i < 5; i++) {
            st = new StringTokenizer(in.readLine());
            for (j = 0; j < 5; j++) {
                bingopan[i][j] = Integer.parseInt(st.nextToken());
            }
        }
         
        for (i = 0; i < 5; i++) {
            st = new StringTokenizer(in.readLine());
            for (j = 0; j < 5; j++) {
                saheja[i][j] = Integer.parseInt(st.nextToken());
            }
        }
         
        for (i = 0; i < 5; i++) {
            for (j = 0; j < 5; j++) {
                bingocnt++;
                mark(saheja[i][j]); 
                if(check())
                {
                    flag = 1;
                     
                    bw.write(String.format("%d", bingocnt));
                    bw.flush();
                    return;
                }
            }
        }
      
         
    }
 
    private static boolean check() {
        // TODO Auto-generated method stub
         
        int rowcnt=0;
        int colcnt=0;
        int daecnt=0;
         
        for(int i=0;i<5;i++)
        {
            int j;
            for(j=0;j<5;j++)
            {
                if(bingopan[i][j]!=0) break;  
            }
            if(j==5)rowcnt++;
        }
        for(int i=0;i<5;i++)
        {
            int j;
            for(j=0;j<5;j++)
            {
                if(bingopan[j][i]!=0) break;  
            }
            if(j==5)colcnt++;
        }
        int i;
        for(i=0;i<5;i++)
        {
            if(bingopan[i][i]!=0) break;  
        }
        if(i==5)daecnt++;
        for(i=0;i<5;i++)
        {
            if(bingopan[i][4-i]!=0) break;  
        }
        if(i==5)daecnt++;
        if(rowcnt+colcnt+daecnt>=3) return true;
         
        return false;
    }
 
    private static void mark(int n) {
        // TODO Auto-generated method stub
        int i, j;
         
        for (i = 0; i < 5; i++) {
            for (j = 0; j < 5; j++) {
                if (bingopan[i][j] == n) {
                    bingopan[i][j] = 0;
                }
            }
        }
    }
}

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=310&sca=2060

'정올문제소스코드' 카테고리의 다른 글

1836 : 연속부분합 찾기  (0) 2021.10.29
1761 : 숫자 야구  (0) 2021.10.29
1733 : 오목  (0) 2021.10.29
1997 : 떡 먹는 호랑이  (0) 2021.10.29
1311 : 카드게임  (0) 2021.10.29