Koala - 6기/기초 알고리즘 스터디

[백준/C++] 1100번 하얀 칸

hoeunwang 2022. 5. 7. 23:10

https://www.acmicpc.net/problem/1100

 

1100번: 하얀 칸

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

www.acmicpc.net


문제 해석


흰칸에 놓여져 있는 말(F)이 있다면 그것을 counting 해서 출력해주는 문제이다. 흰칸이 첫번째줄에선 짝수번째에 두번째줄에선 홀수번째에 나타나는것을 고려해주어야 한다.


코드


#include<iostream>
using namespace std;
int main(void) {
	int cnt = 0;
	char a[8][9];	
	
	for (int i = 0; i < 8; i++)
		cin >> a[i];

	
	for (int i = 0; i < 8; i++) {
		for (int j = i % 2; j < 8; j += 2) {
			if (a[i][j] == 'F')
				cnt++;
		}
	}
	
	cout << cnt << endl;
}

문제풀이


 

이중for문을 만들어서 흰칸에 놓인 말의 수를 세어주면 좋다. 위의 코드에서와 같이 a배열(체스판)을 만들어주고, i를 0(짝수)부터 시작하여 j가 i를 2로 나눈 나머지로 지정해주면 i가 짝수일땐 짝수번째에서의 F수를 세어줄 수 있고 i가 홀수일땐 홀수번재에서의 F수를 세어줄 수 있게 된다. 그렇게 세어준 수(cnt)를 출력해주면 된다.