반응형
문제
코드
#include <iostream>
#include <string>
using namespace std;
//하얀색 0 검은색 1
int main() {
int arr1[8] = { 0, 1, 0, 1, 0, 1, 0, 1 };
int arr2[8] = { 1, 0, 1, 0, 1, 0, 1, 0 };
string n;
int count = 0;
for (int k = 0; k < 8; k++)
{
cin >> n;
for (int i = 0; i < 8; i++)
{
if (k == 0 || k % 2 == 0)
{
if (arr1[i] == 0 && n[i] == 'F')
{
count++;
}
}
else
{
if (arr2[i] == 0 && n[i] == 'F')
{
count++;
}
}
}
}
cout << count << endl;
return 0;
}
문제풀이
이중 for문을 써주고 if문으로 처리를 해주었습니다.
체스판에서 0을 하얀색으로 1을 검정색으로 해서 배열을 만들어줬으며 총 세로기준으로 홀수일 때 arr1, 짝수일 때 arr2가 나오도록 해주었습니다.
코드는 읽어보면 풀 수 있을 정도의 난이도입니다.
물론 이 풀이말고 다르게 풀이를 해도 되는데요.
char arr[8][8] 이런식으로 바로 2차원배열을 표현해주셔도 가능합니다.
for(int i=0; i<8; i++)
{
for(int j=0; j<8; j++)
{
cin >> arr[i][j];
if(arr[i][j] == 'F')
{
if(i%2 ==0 && j%2 == 0)
count++;
else if(i%2 == 1 && j%2 == 1)
count++;
}
}
이런식으로 이차원 배열로 묶은 다음에 가로 세로를 판별해줘도 똑같이 값이 나옵니다.
반응형