백준

[백준/파이썬] 1100번 하얀 칸

won-ian 2024. 9. 30. 21:41

※ 문제

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

※ 입력

첫째 줄부터 8개의 줄에 체스판의 상태가 주어진다. ‘.’은 빈 칸이고, ‘F’는 위에 말이 있는 칸이다.

 출력

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

 

 해결방법

이 문제를 해결하기 위해서는 하얀 칸의 특성을 이해하는 것이 중요하다. (0,0)이 하얀 칸이라고 주어졌으므로 (1,0)은 검은칸, (2,0)은 하얀칸 순으로 진행이 될 것이고 아래는 (0,1)은 검은칸, (1,1)은 하얀칸으로 진행이 될 것이다. 이를 통해 x + y가 짝수이면 하얀 칸이고 x + y가 홀수이면 검정 칸이라는 것을 알 수 있다. 리스트에 저장을 하고 이중리스트를 사용하여, x + y가 짝수일 때, lst[x][y]에 F값이 있으면 카운트를 해주면 해결이 되는 것을 알 수 있다.

 

 


 파이썬 코드 정리

cnt = 0
lst = []
for _ in range(8):
    chess = input()
    lst.append(chess)
    
for i in range(8):
    for j in range(8):
        if (i+j) % 2 == 0:
            if lst[i][j] == "F":
                cnt += 1
                
print(cnt)