-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbingo
115 lines (89 loc) · 2.92 KB
/
bingo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
문제
빙고 게임은 다음과 같은 방식으로 이루어진다.
먼저 아래와 같이 25개의 칸으로 이루어진 빙고판에 1부터 25까지 자연수를 한 칸에 하나씩 쓴다
tetrismapex
다음은 사회자가 부르는 수를 차례로 지워나간다. 예를 들어 5, 10, 7이 불렸다면 이 세 수를 지운 뒤 빙고판의 모습은 다음과 같다.
tetrismapex
차례로 수를 지워가다가 같은 가로줄, 세로줄 또는 대각선 위에 있는 5개의 모든 수가 지워지는 경우 그 줄에 선을 긋는다.
tetrismapex
이러한 선이 세 개 이상 그어지는 순간 "빙고"라고 외치는데, 가장 먼저 외치는 사람이 게임의 승자가 된다.
tetrismapex
철수는 친구들과 빙고 게임을 하고 있다. 철수가 빙고판에 쓴 수들과 사회자가 부르는 수의 순서가 주어질 때, 사회자가 몇 번째 수를 부른 후 철수가 "빙고"를 외치게 되는지를 출력하는 프로그램을 작성하시오.
입력
첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 빙고판에 쓰여진 수와 사회자가 부르는 수는 각각 1부터 25까지의 수가 한 번씩 사용된다.
출력
첫째 줄에 사회자가 몇 번째 수를 부른 후 철수가 "빙고"를 외치게 되는지 출력한다.
예제 입력
11 12 2 24 10
16 1 13 3 25
6 20 5 21 17
19 4 8 14 9
22 15 7 23 18
5 10 7 16 2
4 22 8 17 13
3 18 1 6 25
12 19 23 14 21
11 24 9 20 15
예제 출력
15
#include <stdio.h>
int main() {
int bingo[5][5];
int bingocall[5][5];
int N=1;
int cnt=0;
int bingo1[25];
for(int i=0;i<25;i++){
bingo1[i]=0;
}
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
scanf("%d ",&bingo[i][j]);
}
}
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
scanf("%d ",&bingocall[i][j]);
}
}
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
bingo1[5*i+j]=bingocall[i][j];
}
}
while(cnt<3){
cnt=0;
for(int i=0;i<N;i++){
for(int k=0;k<5;k++){
for(int s=0;s<5;s++){
if(bingo1[i]==bingo[k][s]){
bingo[k][s]=-1;
}
}
}
if(cnt>=3){
printf("%d",i);
break;
}
}
for(int i=0;i<5;i++){
if(bingo[i][0]+bingo[i][1]+bingo[i][2]+bingo[i][3]+bingo[i][4]==-5){
cnt++;
}
}
for(int s=0;s<5;s++){
if(bingo[0][s]+bingo[1][s]+bingo[2][s]+bingo[3][s]+bingo[4][s]==-5){
cnt++;
}
}
if(bingo[0][0]+bingo[1][1]+bingo[2][2]+bingo[3][3]+bingo[4][4]==-5){
cnt++;
}
if(bingo[4][0]+bingo[3][1]+bingo[2][2]+bingo[1][3]+bingo[0][4]==-5){
cnt++;
}
N++;
}
printf("%d",N-1);
return 0;
}