728x90
블라인드가 5개의 모양이 있습니다.
이때 각 모양이 몇개가 있는지 출력하는 문제입니다.
블라인드 모양 전부를 비교하지 않고
각줄의 첫번째 글자만 비교했습니다.
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int M, N;
int blind[5] = { 0, };
char map[510][510];
string s;
int main(int argc, char *argv[])
{
cin >> M >> N;
for (int i = 0; i < M * 5 + 1; ++i) {
cin >> s;
for (int j = 0; j < s.length(); ++j) {
map[i][j] = s[j];
}
}
for (int i = 1; i < M * 5 + 1; i += 5) {
for (int j = 1; j < N * 5 + 1; j += 5) {
if (map[i][j] == '.') {
++blind[0];
}
else if (map[i + 1][j] == '.') {
++blind[1];
}
else if (map[i + 2][j] == '.') {
++blind[2];
}
else if (map[i + 3][j] == '.') {
++blind[3];
}
else {
++blind[4];
}
}
}
for (int i = 0; i < 5; ++i) {
cout << blind[i] << " ";
}
cout << endl;
return 0;
}
'알고리즘' 카테고리의 다른 글
[C++] 백준 11942번 고려대는 사랑입니다. (0) | 2019.09.27 |
---|---|
[C++] 백준 5598번 카이사르 암호 (0) | 2019.09.27 |
[C++] 백준 5397번 키로거 (0) | 2019.09.26 |
[C++] 백준 1773번 폭죽쇼 (0) | 2019.09.26 |
[C++] 백준 5567번 결혼식 (0) | 2019.09.26 |