본문 바로가기

알고리즘 문제풀이

백준2578-빙고 java

728x90
package a0210;

import java.util.*;
public class 빙고 {
	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int[][] arr = new int[5][5];
		
		for(int i=0; i<5; i++) {
			for(int j=0; j<5; j++) {
				arr[i][j] = sc.nextInt();
			}
		}
		
		for(int cnt=1; cnt<=25; cnt++) {
			int num = sc.nextInt();						//지금 부른번호
			
			for(int i=0; i<5; i++) {
				for(int j=0; j<5; j++) {
					if(arr[i][j]==num)arr[i][j]=0;		//부른 숫자는 0처리
				}
			}
			
			int bingcnt = 0;
			if(cnt>=12) {								//빙고 3개될 최소조건
				for(int i=0; i<5; i++) {
					int j = 0;
					while(arr[i][j]==0) {
						j++;
						if(j==5) {
							bingcnt++;
							break;
						}
					}
				}	
				
				for(int j=0; j<5; j++) {
					int i=0;
					while(arr[i][j]==0) {
						i++;
						if(i==5) {
							bingcnt++;
							break;
						}
					}
				}
				
				if(arr[0][0]==0&&arr[1][1]==0&&arr[2][2]==0&&arr[3][3]==0&&arr[4][4]==0)bingcnt++;
				if(arr[0][4]==0&&arr[1][3]==0&&arr[2][2]==0&&arr[3][1]==0&&arr[4][0]==0)bingcnt++;
			}
			
			if(bingcnt>=3) {								// ==3으로 해서 처음에 틀림, 빙고2개에서 동시에 빙고 -> 빙고4개 되는경우도 있음 
				System.out.println(cnt);
				break;
			}
		}
	}
}

'알고리즘 문제풀이' 카테고리의 다른 글

백준10157-자리배정 java  (0) 2022.02.27
백준2635-수 이어가기 java  (0) 2022.02.27
백준2564-경비원 java  (0) 2022.02.26
백준2563-색종이 java  (0) 2022.02.26
백준2559-수열 java  (0) 2022.02.26