728x90
간단한 시뮬레이션 문제이다.
문제의 해결방법
- 철수의 게임판에서 사회자가 부른 수를 찾아 visit처리를 한다.
- 철수의 판에 빙고가 몇 개 완성되었는지 확인한다.
- 3이 넘으면 출력한다.
철수의 게임판에서 사회자가 부른 수를 찾기위해 사회자가 부른 수와 몇 번 불렀는지 정보를 넘겨준다.
find 함수 안에서 철수의 판에서 호출한 번호를 visit 처리를 한다.
가로 세로 검사를 하는 소스이다.
대각선을 검사하는 소스이다.
전체 코드
더보기
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Main{
static int map[][], num[][], result = -1;
static boolean visit[][];
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
map = new int[5][5];
num = new int[5][5];
visit=new boolean[5][5];
for (int i = 0; i < 5; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
for (int j = 0; j < 5; j++) {
map[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++) {
num[i][j] = Integer.parseInt(st.nextToken());
}
}
re: for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
find(num[i][j],i*5+j+1);
if (result != -1) {
break re;
}
}
}
System.out.println(result);
}
private static void find(int k,int now) {
// TODO Auto-generated method stub
re:for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if(map[i][j]==k) {
visit[i][j]=true;
break re;
}
}
}
int count=0;
for (int i = 0; i < 5; i++) {
int check=0;
for (int j = 0; j < 5; j++) {
if(visit[i][j])
check++;
}
if(check==5) {
count++;
}
}
for (int i = 0; i < 5; i++) {
int check=0;
for (int j = 0; j < 5; j++) {
if(visit[j][i])
check++;
}
if(check==5) {
count++;
}
}
int check=0;
for(int i=0;i<5;i++) {
if(visit[i][i])
check++;
if(check==5) {
count++;
}
}
check=0;
for(int i=4;i>=0;i--) {
if(visit[i][4-i])
check++;
if(check==5) {
count++;
}
}
if(count>=3) {
result=now;
}
}
}
'IM대비' 카테고리의 다른 글
백준 2477 <참외밭> (0) | 2020.09.19 |
---|---|
백준 2491 <수열> (0) | 2020.09.19 |
백준 2563 <색종이> (0) | 2020.09.19 |
백준 2605 <줄 세우기> (0) | 2020.09.19 |
백준 2309 <일곱 난쟁이> (0) | 2020.09.19 |