알고리즘 공부/백준 문제풀이

[백준] 1100 : 하얀 칸(JAVA)

송테이토 2022. 10. 28. 23:26

하얀 칸

문제

체스판은 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

코드

package Day1012;

import java.util.Scanner;

public class B11719 {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		String[][] arr = new String[8][8];

		int cnt = 0;
		for (int i = 0; i < arr.length; i++) {
			String str = sc.nextLine();
			for (int j = 0; j < arr[i].length; j++) {
				// 하얀색 칸 위에 && F가 있을 때 cnt++
				// (0,0) (0,1)
				// (1,0) (1,1)
				// (i,j)를 둘이 더해서 2로 나눈 값이 0이라면 흰 말이다.
				if ((i + j) % 2 == 0 && str.charAt(j) == 'F') {
					cnt++;
				}
			}
		}
		System.out.println(cnt);
		sc.close();
	}

}