백준 1100번 (하얀 칸, C++) [BAEKJOON]
문제
https://www.acmicpc.net/problem/1100
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 2 초 | 128 MB | 22037 | 15133 | 13381 | 71.350% |
체스판은 8×8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다.
가장 왼쪽 위칸 (0,0)은 하얀색이다.
체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램을 작성하시오.
입력
첫째 줄부터 8개의 줄에 체스판의 상태가 주어진다.
‘.’은 빈 칸이고, ‘F’는 위에 말이 있는 칸이다.
출력
첫째 줄에 문제의 정답을 출력한다.
예제 입력 1
plaintext
.F.F...F
F...F.F.
...F.F.F
F.F...F.
.F...F..
F...F.F.
.F.F.F.F
..FF..F.
예제 출력 1
plaintext
1
예제 입력 2
plaintext
........
........
........
........
........
........
........
........
예제 출력 2
plaintext
0
예제 입력 3
plaintext
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
예제 출력 3
plaintext
32
예제 입력 4
plaintext
........
..F.....
.....F..
.....F..
........
........
.......F
.F......
예제 출력 4
plaintext
2
cpp
#include <iostream>
#include <string>
using namespace std;
string str;
int cnt = 0;
int main()
{
ios_base::sync_with_stdio(false); // scanf와 동기화를 비활성화
// cin.tie(null); 코드는 cin과 cout의 묶음을 풀어줍니다.
cin.tie(NULL);
std::cout.tie(NULL);
for (int i = 0; i < 8; i++) {
getline(cin, str);
if (i % 2 == 0) {
for (int j = 0; j < str.length(); j++)
if (j % 2 == 0 && str[j] == 'F') cnt++;
}
else {
for (int j = 0; j < str.length(); j++)
if (j % 2 != 0 && str[j] == 'F') cnt++;
}
}
cout << cnt;
return 0;
}