백준 1100 하얀 칸

문제

체스판은 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중 반복문을 이용해 현재 하얀 칸이고 기물이 있으면 정답을 1 증가시킨다.
하얀 칸인지 판단하는 white 변수는 True, False로 나타낸다.

다른 방법으로, 체스판의 모든 칸이 수로 나타낼 수 있다고 가정한다.
2중 반복문을 설정한다. i와 j를 더한 값이 짝수이면 하얀 칸이 되는 것이 핵심이다.

코드 1

board = []
for _ in range(8):
    R = input()
    tmp = []
    for r in R:
        tmp.append(r)
    board.append(tmp)

white = False
count = 0
for i in range(8):
    white = not white
    for j in range(8):
        if white and board[i][j] == 'F':
            count += 1
        white = not white
print(count)

코드 2

board = []
for _ in range(8):
    board.append(list(map(str, list(input()))))

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

print(count)

백준 1100 하얀 칸

좋은 웹페이지 즐겨찾기