본문 바로가기

백준/C++

[Baekjoon/C++] 하얀 칸 1100번

Baekjoon Online Judge

문제로 이동

 

문제

체스판은 8×8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램을 작성하시오.

 

입력

첫째 줄부터 8개의 줄에 체스판의 상태가 주어진다. ‘.’은 빈 칸이고, ‘F’는 위에 말이 있는 칸이다.

 

출력

첫째 줄에 문제의 정답을 출력한다.

 


예제 입력 예제 출력
.F.F...F
F...F.F.
...F.F.F
F.F...F.
.F...F..
F...F.F.
.F.F.F.F
..FF..F.
1
........
........
........
........
........
........
........
........
0
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
32
........
..F.....
.....F..
.....F..
........
........
.......F
.F......
2

풀이

#include <iostream>
using namespace std;

int main() {
    // 하얀 칸 위 말의 수
    int white = 0; 

    for (int i = 0; i < 8; i++) {
        for (int j = 0; j < 8; j++) {
            char c;
            cin >> c;

            // 입력한 문자의 위치가 하얀 칸인지 확인한다.
            if (c == 'F') {
                if (i % 2 == 0 && j % 2 == 0)
                    white++;
                if (i % 2 == 1 && j % 2 == 1)
                    white++;
            }
        }
    }

    // 출력
    cout << white;

    return 0;
}

짝수번째 줄은 짝수 칸이 흰색이고 홀수번째 줄은 홀수 칸이 흰색인 것을 이용해서 풀었다.