본문 바로가기
백준

[백준] 1100번 : 하얀 칸 – JAVA [자바]

by Hongwoo 2022. 4. 21.
반응형

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

 

1100번: 하얀 칸

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

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

백준 1100번 하얀 칸은 브론즈 2 난이도의 구현 및 문자열 문제이다. 이 문제에서는 자료구조를 사용 안 해도 쉽게 풀 수 있다.

 

이 문제에서는 8 × 8 크기의 체스판이 있다. 가장 왼쪽 위칸인 (0,0)은 흰색이다. 그리고 입력으로 체스판의 상태가 .과 F로 이루어진 8줄의 문자열로 주어지는데 .은 빈칸을 뜻하고 F는 말이 있는 칸을 뜻한다. 그리고 흰색 칸에 말이 몇 개 있는지를 출력해주면 된다.

 

우선 (0,0)은 흰 칸이라고 문제에서 주어졌다. 즉, (1,0)과 (0,1)은 검은색 칸이다. 칸을 (i, j)라고 했을 때 i + j가 짝수이면 흰색 칸인 것이다. 

 

이 문제는 이중 for-loop으로 접근한다. 입력으로 주어지는 문자열의 줄을 i라고 하고 그 줄의 문자열을 j번째 인덱스라고 하겠다. 만약에 (i, j)가 F이고 i + j가 짝수이면 카운트를 1씩 증가해 주는 식으로 접근하면 된다. 

 


  • 코드

 

import java.io.*;
import java.util.*;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int count = 0;
        for (int i = 0; i < 8; i++) {
            String s = br.readLine();
            for (int j = 0; j < 8; j++) {
                if (s.charAt(j) == 'F' && (i+j)%2 == 0) count++;
            }
        }
        System.out.print(count);
    }
}

 


  • 후기

이 문제는 자료구조를 이용할 필요 없는 간단한 문제였다.

 

반응형

댓글