※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 1236번 문제인 성 지키기이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/1236
1236번: 성 지키기
첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는 .은 빈칸, X는 경비원이 있는 칸이다
www.acmicpc.net
모든 가로줄과 모든 세로줄에 경비원이 있어야하므로, 경비원이 없는 가로줄의 수와 경비원이 없는 세로줄의 수 가운데 더 큰 수를 골라 출력해주면 된다.
아래는 제출한 소스코드이다.
#include <iostream>
#include <string>
using namespace std;
string castle[50];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int N, M; cin >> N >> M;
for (int i = 0; i < N; i++) {
cin >> castle[i];
}
int cnt1 = 0;
for (int i = 0; i < N; i++) {
bool noguard = 1;
for (int j = 0; j < M; j++) {
if (castle[i][j] == 'X') noguard = 0;
}
if (noguard) cnt1++;
}
int cnt2 = 0;
for (int j = 0; j < M; j++) {
bool noguard = 1;
for (int i = 0; i < N; i++) {
if (castle[i][j] == 'X') noguard = 0;
}
if (noguard) cnt2++;
}
cout << max(cnt1, cnt2);
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 1244 // C++] 스위치 켜고 끄기 (0) | 2021.05.01 |
---|---|
[BOJ 2475 // C++] 검증수 (0) | 2021.05.01 |
[BOJ 1919 // C++] 애너그램 만들기 (0) | 2021.05.01 |
[BOJ 2557 // C++] Hello World (0) | 2021.05.01 |
[BOJ 9498 // C++] 시험 성적 (0) | 2021.05.01 |