-
백준 빙고(c++)코딩테스트 2024. 2. 17. 13:45
https://www.acmicpc.net/problem/2578
#include <iostream> #include <map> using namespace std; int A[5+10][5+10]; int B[25+10]; int R[5]; int C[5]; int side1; int side2; bool visitedR[5]; bool visitedC[5]; bool visitedSide1; bool visitedSide2; map<int, pair<int,int>> m; void InputData(){ for (int i=0; i<5; i++){ for (int j=0; j<5; j++){ cin >> A[i][j]; m[A[i][j]] = make_pair(i,j); } } for (int i=0; i<25; i++){ cin >> B[i]; } } int cnt = 0; int solve() { for(int i=0; i<25; i++) { pair<int,int> p = m[B[i]]; R[p.first]++; C[p.second]++; if (p.first == p.second) side1++; if(p.first == (4-p.second)) {side2++;} if(R[p.first] == 5 && !visitedR[p.first]) {cnt++; visitedR[p.first] = true;} if(C[p.second] == 5 && !visitedC[p.second]) {cnt++; visitedC[p.second] = true;} if(side1 == 5 && !visitedSide1) {cnt++; visitedSide1=true;} if(side2 == 5 && !visitedSide2) {cnt++; visitedSide2 = true;} if (cnt >= 3) return i+1; } } int main(){ int ans = -1; InputData();// 입력받는 부분 // 여기서부터 작성 ans = solve(); cout << ans << endl;// 출력하는 부분 return 0; }
'코딩테스트' 카테고리의 다른 글
정올 uniqueness(c++) (0) 2024.02.25 백준 연속부분최대곱(c++) (0) 2024.02.17 백준 싸이클 c++ (1) 2024.02.08 정올 숫자근 c++ (0) 2024.02.08 정올 폭탄 돌리기 c++ (0) 2024.02.08