백준 1100번 (하얀 칸, C++) [BAEKJOON]

Table Of Contents

하얀 칸

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

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초128 MB22037151331338171.350%

문제

체스판은 8×8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다.

가장 왼쪽 위칸 (0,0)은 하얀색이다.

체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램을 작성하시오.

입력

첫째 줄부터 8개의 줄에 체스판의 상태가 주어진다.

‘.’은 빈 칸이고, ‘F’는 위에 말이 있는 칸이다.

출력

첫째 줄에 문제의 정답을 출력한다.

예제 입력 1

.F.F...F
F...F.F.
...F.F.F
F.F...F.
.F...F..
F...F.F.
.F.F.F.F
..FF..F.

예제 출력 1

1

예제 입력 2

........
........
........
........
........
........
........
........

예제 출력 2

0

예제 입력 3

FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF

예제 출력 3

32

예제 입력 4

........
..F.....
.....F..
.....F..
........
........
.......F
.F......

예제 출력 4

2

출처

알고리즘 분류


통과된 코드

#include <iostream>
#include <string>

using namespace std;

string str;

int cnt = 0;

int main()
{
	ios_base::sync_with_stdio(false); // scanf와 동기화를 비활성화
	// cin.tie(null); 코드는 cin과 cout의 묶음을 풀어줍니다.
	cin.tie(NULL);
	std::cout.tie(NULL);

	for (int i = 0; i < 8; i++) {

		getline(cin, str);

		if (i % 2 == 0) {
			for (int j = 0; j < str.length(); j++) 
				if (j % 2 == 0 && str[j] == 'F') cnt++;
			}
		else {
			for (int j = 0; j < str.length(); j++) 
				if (j % 2 != 0 && str[j] == 'F') cnt++;	
		}
	}

	cout << cnt;

	return 0;
}

댓글 달기

Translate »
Scroll to Top