백준(Backjoon) 1100, 하얀칸

2021. 6. 23. 10:45CodingTest

문제풀이

체스판의 행(row)과 열(col)은 (0,0)부터 시작하고 하얀색이다. 그리고 검정칸과 하얀칸은 번갈아 색칠되어 있기 때문에 예제 입력1에 따른 체스판의 상황은 아래 그림과 같다.

예제 입력1 체스판 상황

위의 그림에서 빨간색 F(7,3)만이 하얀색 칸에 있으므로 정답에 카운트된다.

 

위 체스판에서 행(row)의 값을 2로 나누었을때 나머지값이 0이 나온다면 짝수 열(0열 포함)의 칸이 하얀색인 것을 알 수 있다. 반대로 나머지 값이 1이 나온다면 홀수 열의 칸이 하얀색인 것을 알 수 있다. 따라서 이중 반복문을 통하여 하얀색 칸만을 참조하여 하얀칸 자리의 값이 "F"인지 검사하고 카운트하면 된다.

 

public class Main {
	
	public static int solution(String[][] map)
	{
		int answer = 0;
		for(int row=0, col=0; row<8;row++)
		{
			
			if(row%2==0)
			{
				col=0;
			}
			else
			{
				col=1;
			}
			
			for(;col<8;col+=2)
			{
				if(map[row][col].equals("F"))
				{
					answer++;
				}
			}
		}
		return answer;
	}
	public static void main(String args[]) throws IOException
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[][] map = new String[8][8];
		int answer = 0;
		
		for(int i=0;i<8;i++)
		{
			map[i] = br.readLine().split("");
		}
		answer = solution(map);
		System.out.println(answer);
	}
}