ascode 1214 빙고게임 판단하기
문제 설명
빙고게임을 위한 3 x 3 데이터가 입력될 경우 몇 줄이 맞았는지를 판단하는 프로그램을 작성하자.
입력 설명
첫번째 줄에서 3번째 줄까지 1부터 9까지의 정수로 이루어진 3 x 3 형식의 행렬이 입력된다(중복 입력은 없다). 다음 줄에 빙고 게임에 의해 불려지는 숫자의 개수(N, 1<=N <= 9)이 입력된다. 그 다음 줄에 N개의 정수(1 ~ 9)가 입력된다.
출력 설명
입력이 주어질 경우 가로, 세로, 대각선을 모두 고려해서 몇 줄이 지워진 줄인지를 판단하여 지워진 줄 수를 출력한다.
입력 예시
1 3 8
4 2 9
5 6 7
3
4 2 9
출력 예시
1
코드
#include <stdio.h>
//전역 변수 설정하기
int set = 3;
int a,ar[4][4],input[9];
int i, j;
int count = 0, temp = 0, gr = 0;
void convert() {
for (int v = 0; v < a; v++)
{
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
if (input[v] == ar[i][j]) {
ar[i][j] = 0;
}
}
}
}
}
void checkBingo() {
//temp 초기화
temp = 0;
//가로 확인
for (i = 0; i < set; i++)
{
temp = 0;
for (j = 0; j < set; j++)
{
if (ar[i][j] == 0) {
temp++;
}
}
//모두가 일치하면 카운트 하나 추가
if (temp == set) {
count++;
temp = 0;
}
}
//temp 초기화
temp = 0;
//세로 확인
for (i = 0; i < set; i++)
{
temp = 0;
for (j = 0; j < set; j++)
{
if (ar[j][i] == 0) {
temp++;
}
}
//모두가 일치하면 카운트 하나 추가
if (temp == set) {
count++;
temp = 0;
}
}
//temp 초기화
temp = 0;
//대각선 확인 (이건 수정중)
for (int i = 0; i < set; i++)
{
if (ar[i][i] == 0) {
temp++;
}
if (i == 2 && temp == set) {
count++;
temp = 0;
}
}
//temp 초기화
temp = 0;
for (int i = 0; i < set; i++)
{
if (ar[i][set - i - 1] == 0) {
temp++;
}
if (i == 2 && temp == set) {
count++;
temp = 0;
}
}
};
int main() {
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
scanf("%d", &ar[i][j]);
}
}
scanf("%d", &a);
for (int i = 0; i < a; i++)
{
scanf("%d", &input[i]);
}
convert();
checkBingo();
printf("%d", count);
}
나 : say
이건 수업때 쓴 함수를 다시 썻지(재사용쩸)
댓글남기기