728x90
반응형
https://www.acmicpc.net/problem/2578
1. Logic
입력을 받은것을 기반으로 숫자 입력을 받을 때 마다 vis배열에 체크를 하고 for문을 돌며 각 빙고 라인들을 체크해준다.
2. Code
#include <bits/stdc++.h>
using namespace std;
int bingo[5][5];
int vis[5][5];
int check1() {
int ret = 0;
for(int i = 0; i < 5; i++)
if(vis[i][0] && vis[i][1] && vis[i][2] && vis[i][3] && vis[i][4])
ret++;
return ret;
}
int check2() {
int ret = 0;
for(int i = 0; i < 5; i++)
if(vis[0][i] && vis[1][i] && vis[2][i] && vis[3][i] && vis[4][i])
ret++;
return ret;
}
int check3() {
int ret = 0;
if(vis[0][0] && vis[1][1] && vis[2][2] && vis[3][3] && vis[4][4])
ret++;
return ret;
}
int check4() {
int ret = 0;
if(vis[0][4] && vis[1][3] && vis[2][2] && vis[3][1] && vis[4][0])
ret++;
return ret;
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++) {
cin >> bingo[i][j];
}
}
for(int k = 0; k < 25; k++) {
int a;
cin >> a;
int bingoCnt = 0;
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++) {
if(bingo[i][j] == a)
vis[i][j] = true;
}
}
bingoCnt += check1();
bingoCnt += check2();
bingoCnt += check3();
bingoCnt += check4();
if(bingoCnt >= 3) {
cout << k+1;
return 0;
}
}
}
알고리즘 Solve 후 제가 생각한 Logic을 기록하는 개인 공부 블로그입니다.
내용 중 최적화가 가능한 부분등은 언제든지 댓글로 틀린 부분 및 피드백 주시면 공부 및 반영하겠습니다🧐
728x90
반응형
'Algorithm > Beakjoon' 카테고리의 다른 글
[백준/Baekjoon] 9656 돌 게임 2 C++ :: Implementation (1) | 2023.12.06 |
---|---|
[백준/Baekjoon] 2482 색상환 C++ :: Dynamic programming (1) | 2023.12.05 |
[백준/Baekjoon] 2441 별 찍기 - 4 C++ :: Implementation (0) | 2023.12.03 |
[백준/Baekjoon] 4195 친구 네트워크 C++ :: Union find & Data structure (1) | 2023.12.03 |
[백준/Baekjoon] 20310 타노스 C++ :: Implementation & Greedy (2) | 2023.12.03 |