본문 바로가기
알고리즘/백준

[JAVA]백준_2578_빙고

by 박 현 황 2021. 2. 25.

문제링크

https://www.acmicpc.net/problem/2578

 

2578번: 빙고

첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로

www.acmicpc.net

 

 

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main{
	static int map[][] = new int[5][5];
	static int result;
	static boolean find = false;
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		
		for(int i=0;i<5;i++) {
			st = new StringTokenizer(br.readLine());
			for(int j=0;j<5;j++)
				map[i][j] = Integer.parseInt(st.nextToken());
		}
		

		int check[] = new int[25];
		int idx = 0;
		for(int i=0;i<5;i++) {
			st = new StringTokenizer(br.readLine());
			for(int j=0;j<5;j++)
				check[idx++] = Integer.parseInt(st.nextToken());
		}
		
		for(int z=0;z<25;z++) {	
			for(int i=0;i<5;i++) {
				for(int j=0;j<5;j++) {
					if(map[i][j] == check[z]) {
						//지우기
						map[i][j] = 0;
						break;
					}
				}
			}
			//숫자 하나 0만들고 나서 findBingo
			findBingo();
			if(find) {
				System.out.println(z+1);
				break;
			}
		}

	}
	
	static void findBingo() {
		int cnt = 0;
		int sum = 0;
		
		//가로
		for(int i=0;i<5;i++) {
			sum = 0;
			for(int j=0;j<5;j++)
				sum += map[i][j];
			if(sum == 0) cnt++;
		}
		
		//세로
		for(int i=0;i<5;i++) {
			sum = 0;
			for(int j=0;j<5;j++)
				sum += map[j][i];
			if(sum == 0) cnt++;
		}
		
		//오른쪽 위 대각선
		sum = 0;
		for(int i=0;i<3;i++) {
			sum += map[2-i][2+i];
			sum += map[2+i][2-i];
		}
		if(sum ==0) cnt++;
		
		sum = 0;
		for(int i=0;i<3;i++) {
			sum += map[2+i][2+i];
			sum += map[2-i][2-i];
		}
		if(sum == 0) cnt++;
		
		if(cnt>=3)
			find = true;

	}
}

 

 

'알고리즘 > 백준' 카테고리의 다른 글

[JAVA]백준_2559_수열  (0) 2021.02.25
[JAVA][C++]백준_2941_크로아티아 알파벳  (0) 2021.02.25
[JAVA]백준_10157_자리배정  (0) 2021.02.25
[JAVA]백준_14696_딱지놀이  (0) 2021.02.23
[JAVA]백준_10163_색종이  (0) 2021.02.23