[C++] 백준 2578번 : 빙고

2025. 5. 26. 16:38·공부/BAEKJOON
728x90

https://www.acmicpc.net/problem/2578

문제 요약


  • 5x5칸의 빙고판에 1부터 25까지의 자연수를 한 칸에 하나씩 쓴다..
  • 사회자가 부르는 수를 차례로 지운다.
  • 같은 가로줄, 세로줄, 대각선 위에 있는 5개의 모든 수가 지워지는 경우 그 줄에 선을 긋는다.
  • 선이 세 개 이상 그어지는 순간 "빙고"라고 외치며, 가장 먼저 외치는 사람이 승리한다.
  • 철수가 빙고판에 쓴 수들과 사회자가 부르는 수의 순서가 주어질 때, 사회자가 몇 번째 수를 부른 후 철수가 "빙고"를 외치게 되는지를 출력하는 프로그램을 작성하시오.

입력과 출력


제출 답안


#include <iostream>
#include<list>
using namespace std;

int bingo[5][5];
int answer[25];
int collect[10] = { 0,0,0,0,0,0,0,0,0,0 };//지워진 표
int result = 0;

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int row = 0;
	int col = 0;

	//빙고판 입력 받기
	for (int i = 0; i < 25; i++) {
		row = i / 5;
		col = i % 5;
		cin >> bingo[row][col];
	}

	//사회자가 부르는 수 입력
	for (int i = 0; i < 25; i++) {
		cin >> answer[i];
	}

	row = 0;
	int line = 0;
	int diag1 = 0, diag2 = 0;
	int index = 0;

	for (int i = 0; i < 25; i++) {
		row = i / 5;
		col = i % 5;

		if (bingo[row][col] == answer[index]) {
			result++;//횟수 증가
			if (row == col) diag1++;//대각선 검사
			if ((row + col) == 4) diag2++;//대각선 검사

			collect[row]++;
			collect[col + 5]++;

			if (collect[row] == 5) {
				collect[row] = 0;
				line++;
			}
			if (collect[col + 5] == 5) {
				collect[col + 5] = 0;
				line++;
			}
			if (diag1 == 5) {
				diag1 = 0;
				line++;
			}
			if (diag2 == 5) {
				diag2 = 0;
				line++;
			}

			if (line >= 3) {
				cout << result;
				return 0;//빙고!
			}
			index++;
			i = -1;
			continue;
		}
	}
	return 0;
}
728x90

'공부 > BAEKJOON' 카테고리의 다른 글

[C++] 백준 14503번 : 로봇 청소기  (1) 2025.06.05
[C++] 백준 11660번: 구간 합 구하기5  (0) 2025.01.14
[C++] 백준 11659번: 구간 합 구하기4  (0) 2025.01.12
[C++] 백준 1546: 평균  (1) 2025.01.11
[C++] 백준 11720: 숫자의 합  (0) 2025.01.11
'공부/BAEKJOON' 카테고리의 다른 글
  • [C++] 백준 14503번 : 로봇 청소기
  • [C++] 백준 11660번: 구간 합 구하기5
  • [C++] 백준 11659번: 구간 합 구하기4
  • [C++] 백준 1546: 평균
knhoo
knhoo
  • knhoo
    &*
    knhoo
  • 전체
    오늘
    어제
    • 전체 (144) N
      • Unity 개발일지 (20)
        • [Unity2D]졸업프로젝트 (17)
        • [Unity3D]VR프로젝트 (2)
      • 공부 (119) N
        • 게임 수학 (1)
        • 부트캠프 (13) N
        • C++ (39)
        • Unity & C# (8)
        • 데이터베이스 (2)
        • 컴퓨터비전 (0)
        • 컴퓨터구조 (0)
        • python (7)
        • BAEKJOON (38)
        • 개발 (2)
        • 자료구조 (9)
      • 일상 (2)
  • 블로그 메뉴

    • Github
    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • 📖README
  • 인기 글

  • 태그

    Cpp
    til
    c#
    패널파워
    구간합
    멋쟁이사자처럼후기
    자료구조
    캐시워크
    야핏무브
    앱테크
    C++
    unity2d
    오블완
    백준
    백준 #python
    Python
    티스토리챌린지
    비트버니
    머니워크
    unity
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
knhoo
[C++] 백준 2578번 : 빙고
상단으로

티스토리툴바