티스토리 뷰
문제 요약
문제 설명
- 첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다.
- 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다.
- 빙고판에 쓰여진 수와 사회자가 부르는 수는 각각 1부터 25까지의 수가 한 번씩 사용된다.
- 첫째 줄에 사회자가 몇 번째 수를 부른 후 철수가 "빙고"를 외치게 되는지 출력한다.
함수 설명
- solve : 사회가 부르는 수를 0으로 바꿔주는 함수
- Bingo : table에 bingo 개수를 리턴해주는 함수
문제 해답
#include <iostream>
using namespace std;
const int SIZE = 5;
int table[SIZE][SIZE];
bool Bingo();
void solve(int d);
int main() {
std::ios::sync_with_stdio(false);
cin.tie(0);
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++)
cin >> table[i][j];
}
int sol = 0;
for (int i = 0; i < SIZE * SIZE; i++) {
int val;
cin >> val;
solve(val);
if (Bingo()) {
cout << i + 1 << endl;
break;
}
}
return 0;
}
void solve(int d) {
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++)
if (d == table[i][j]) {
table[i][j] = 0;
break;
}
}
}
bool Bingo() {
// row
int count = 0;
for (int i = 0; i < SIZE;i++) {
int val = 0;
for (int j = 0; j < SIZE; j++) {
val += table[i][j];
}
if (val == 0) {
count++;
}
}
for (int i = 0; i < SIZE;i++) {
int val = 0;
for (int j = 0; j < SIZE; j++)
val += table[j][i];
if (val == 0)
count++;
}
int val = 0;
for (int i = 0; i < SIZE;i++)
val += table[i][i];
if (val == 0)
count++;
val = 0;
for (int i = 0; i < SIZE;i++)
val += table[0 + i][SIZE - 1 - i];
if (val == 0)
count++;
if (count >= 3)
return true;
return false;
}
'알고리즘 > Olympiad' 카테고리의 다른 글
[Olympiad] 지역본선 2006 초등부 : 계단 오르기 #2579 (0) | 2019.09.26 |
---|---|
[Olympiad] 지역본선 2006 초등부 : 숫자의 개수 #2577 (0) | 2019.09.26 |
[Olympiad] 지역본선 2006 초등부 : 홀수 #2576 (0) | 2019.09.26 |
[Olympiad] 지역본선 2005 초등부 : 숫자 카드 #2591 (0) | 2019.09.26 |
[Olympiad] 지역본선 2005 초등부 : 색종이 #2590 (0) | 2019.09.25 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 디자인패턴
- 백준
- 이팩티브 자바
- 클린 코드
- Olympiad
- BOJ
- Java
- Spring Boot
- C++
- AWS
- 이펙티브 자바
- MSA
- node.js
- 테라폼
- 알고리즘
- 프로그래머스
- kotest
- 디자인 패턴
- 코테
- programmers
- Spring
- 정규표현식
- BAEKJOON
- kkoon9
- Algorithm
- Kotlin
- 클린 아키텍처
- Effective Java
- 객체지향
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함