[백준 1100] 하얀 칸 (C#, C++) - soo:bak
작성일 :
문제 링크
설명
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;
}