작성일 :

문제 링크

1100번 - 하얀 칸

설명

8 × 8 크기의 체스판이 주어졌을 때,

하얀 칸 중에 말(F)이 놓여 있는 칸의 개수를 세는 문제입니다.


체스판의 좌측 상단은 (0, 0)이며, 흰 칸과 검은 칸은 번갈아 배치됩니다.

  • 즉, (i + j) % 2 == 0인 좌표는 항상 흰 칸입니다.
  • 각 칸은 .(빈 칸) 또는 F(말이 놓인 칸)로 표시됩니다.


접근법

  • 8줄에 걸쳐 체스판 상태를 입력받습니다.
  • 각 칸을 순회하면서 (행 + 열)이 짝수인 경우만 확인합니다.
  • 해당 칸이 F라면 흰색 칸 위에 말이 놓인 것으로 간주하여 개수를 증가시킵니다.
  • 최종적으로 말이 놓인 흰 칸의 총 개수를 출력합니다.


Code

C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;

class Program {
  static void Main() {
    int cnt = 0;
    for (int i = 0; i < 8; i++) {
      string row = Console.ReadLine();
      for (int j = 0; j < 8; j++) {
        if ((i + j) % 2 == 0 && row[j] == 'F')
          cnt++;
      }
    }
    Console.WriteLine(cnt);
  }
}

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <bits/stdc++.h>
using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int cntAns = 0;
  for (int i = 0; i < 8; i++) {
    for (int j = 0; j < 8; j++) {
      char c; cin >> c;
      if ((i + j) % 2 == 0 && c == 'F') cntAns++;
    }
  }
  cout << cntAns << "\n";

  return 0;
}