문제 URL:
1100번: 하얀 칸
체스판은 8*8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램
www.acmicpc.net
다음 문제는 첫째 줄부터 8개의 줄에 체스판의 상태가 주어졌을 때
하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램이다.
이 문제는 각 줄을 string 문자열로 입력받고 문자열의 요소 중 F가 있는지 확인하는 방식으로 풀었는데,
여기서 문자열의 요소가 F라고 해도
이 문자가 몇 번째 줄 문자열인지, 문자열 중 몇 번째 문자인지에 따라 결과값이 달라진다.
가장 왼쪽 위칸(0,0)이 하얀색이기 때문에 홀수 번째 줄의 홀수 칸이나, 짝수 번째 줄의 짝수 칸만 하얀 칸이 될 수 있다.
따라서 위 두 경우일 때만 count 변수를 증가시켜주어 하얀 칸 위의 말의 개수를 구하였다.
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
int count=0;
for(int i=0; i<8; i++)
{
cin >> s;
for(int j=0; j<8; j++)
{
if(s[j]=='F')
{
if(((i+1)%2!=0)&&((j+1)%2!=0))
count++;
else if(((i+1)%2==0)&&((j+1)%2==0))
count++;
}
}
}
cout << count;
}