알고리즘/백준
[백준 / #2578] 빙고 (Java)
셩윤
2024. 2. 17. 19:53
문제 설명
2차원 배열에 내 빙고 판이랑 부르는 순서 다 저장해서 2중 for문으로만 돌게 됐습니다..
두번째 배열을 입력받으면서 바로 확인하면 더 깔끔할 것 같습니다.
0인거 확인하는 메서드랑 빙고인지 확인하는 메서드 따로 만들었습니다
문제풀이
package acmic;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class ac_2578 {
public static int[][] my = new int[5][5];
public static void find(int n) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (n == my[i][j])
my[i][j] = 0;
}
}
}
public static int check() {
int result = 0;
for (int i = 0; i < 5; i++) {
int count1 = 0;
int count2 = 0;
for (int j = 0; j < 5; j++) {
if (my[i][j] == 0) {
count1++;
}
if (my[j][i] == 0) {
count2++;
}
if (count1 == 5) {
result++;
}
if (count2 == 5) {
result++;
}
if (result == 3)
return result;
}
}
int count1 = 0;
int count2 = 0;
for (int i = 0; i < 5; i++) {
if (my[i][i] == 0) {
count1++;
}
if (my[4 - i][i] == 0) {
count2++;
}
}
if (count1 == 5)
result++;
if (count2 == 5)
result++;
return result;
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int result = 0;
int[][] ans = new int[5][5];
for (int i = 0; i < 5; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
for (int j = 0; j < 5; j++) {
my[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());
}
}
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
find(ans[i][j]);
result++;
if (check() >= 3) {
System.out.println(result);
System.exit(1);
}
}
}
}
}