jyamethyst21 님의 블로그

백준 1100번- '하얀 칸' (PYTHON 풀이) 본문

CODING 💻

백준 1100번- '하얀 칸' (PYTHON 풀이)

jyamethyst21 2026. 1. 1. 01:39

문제:

 

체스판이 있을 때 하얀 칸에 F가 몇개 있는지 세는 문제이다.

여기서 주의할 점은 체스판을 생각해보면, 각 색이 매번 동일한 칸에 있는 게 아니라 지그재그처럼 한 칸씩 바뀐다는 것이다.

그래서 첫째줄에서 스타트가 흰색이었다면 둘째줄 스타트는 검정, 그 다음 줄 스타트는 흰색.. 이런식으로 왔다갔다 바뀐다는 것을 유의하고 코드를 작성해야 한다.

 

 

풀이:

board = []
count = 0

for q in range(8):
    board.append(input())

for i in range(8):
    for j in range(8):
        if i % 2 == 1 and j % 2 == 1 and board[i][j] == "F":
            count += 1
        if i % 2 == 0 and j % 2 == 0 and board[i][j] == "F":
            count += 1
print(count)

체스판을 그릴 리스트 형태의 board 변수와 F의 개수를 셀 count 변수를 선언한다.

그 다음 체스판은 총 8줄이므로 반복문을 통해 각 라인을 입력 받는다.

그리고 이중 반복문을 돌면서 각 라인이 홀수이면서, 홀수 자리에 위치해 있는 곳이 F인지 검사하고 F라면 카운트를 1 증가한다. 또한 각 라인이 짝수이면서, 짝수 자리에 위치해 있는 곳이 F인지 검사하고 F이면 카운트를 1 증가시킨다.

이렇게 조건문이 두개인 이유는 앞서 말한 것처럼, 체스판은 지그재그이기 때문이다.

첫번째 줄 스타트가 흰색 칸일 때 두번째 줄에서 흰색은 두번째칸부터 있을 것이다. 그래서 홀수 라인일 땐 홀수 자리, 짝수 라인일 땐 짝수 자리이기 때문에 조건문을 두개 써서 count를 증가시켜주고 이를 출력하면 해당 문제를 풀 수 있다.