728x90
https://www.acmicpc.net/problem/2578
2578번: 빙고
첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로
www.acmicpc.net
import java.io.*;
import java.util.*;
public class Main {
static int[][] bingo = new int[5][5];
static int count = 0;
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
for (int i = 0; i < 5; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
for (int j = 0; j < 5; j++) {
bingo[i][j] = Integer.parseInt(st.nextToken());
}
}
A:
for (int i = 0; i < 5; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
for (int j = 0; j < 5; j++) {
count++;
int num = Integer.parseInt(st.nextToken());
findNum(num); // 빙고판에서 숫자를 찾아 0으로 바꿔주는 함수
if (findBingo()) {
break A;
}
}
}
System.out.print(count);
}
private static void findNum(int n) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (bingo[i][j] == n) {
bingo[i][j] = 0;
return;
}
}
}
}
private static boolean findBingo() {
int bingoCount = 0;
// 가로 검사
for (int i = 0; i < 5; i++) {
int count = 0;
for (int j = 0; j < 5; j++) {
if (bingo[i][j] == 0) {
count++;
}
}
if (count == 5) {
bingoCount++;
}
}
// 세로 검사
for (int i = 0; i < 5; i++) {
int count = 0;
for (int j = 0; j < 5; j++) {
if (bingo[j][i] == 0) {
count++;
}
}
if (count == 5) {
bingoCount++;
}
}
int count = 0;
// 왼쪽에서 오른쪽으로 내려가는 대각선 검사
for (int i = 0; i < 5; i++) {
if (bingo[i][i] == 0) {
count++;
}
}
if (count == 5) {
bingoCount++;
}
count = 0;
// 오른쪽에서 왼쪽으로 내려가는 대각선 검사
for (int i = 0; i < 5; i++) {
if (bingo[i][4 - i] == 0) {
count++;
}
}
if (count == 5) {
bingoCount++;
}
if (bingoCount >= 3) {
return true;
} else {
return false;
}
}
}
회고
- 알고리즘이 들어가지 않은 그냥 구현 문제였다.
- 헷갈리긴 했지만 하나하나 차근차근 구현하니 풀렸다.
- 구현 문제 더 풀어봐야겠다.
'Algorithm Study > BaekJoon (JAVA)' 카테고리의 다른 글
백준 15686_치킨 배달_JAVA (1) | 2024.04.21 |
---|---|
백준 8911_거북이_JAVA (1) | 2024.04.18 |
백준 10709_기상캐스터_JAVA (0) | 2024.04.17 |
백준 2167_ 2차원 배열의 합_JAVA (0) | 2024.04.15 |
백준 14467_소가 길을 건나간 이유 1_JAVA (0) | 2024.04.15 |