[백준] 1100 하얀 칸

안재영·2022년 3월 2일
0

문제 링크

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

  • 티어: Gold 2
  • 시간 제한: 2 초
  • 메모리 제한: 128 MB
  • 알고리즘 분류: 구현, 문자열

문제

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

입력

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

출력

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

예제 입출력



Algorithm

  1. 현재 행에 F가 존재하는지 확인
  2. 존재하는 경우 해당 행이 짝수 행인지 홀수 행인지 확인
  3. 짝수행인 경우 열이 짝수인 경우 흰색, 열이 홀수인 경우 검정 칸
    -> 흰색 칸일 때 해당 칸에 F 있는지 확인
  4. 홀수행인 경우 열이 홀수인 경우 흰색, 열이 짝수인 경우 검정 칸
    -> 흰색 칸일 때 해당 칸에 F 있는지 확인

Code

chess_board = []
count = 0
for i in range(8):
    chess_board.append(input())
    
    # 현재 행에 F가 존재하는지 확인
    if 'F' in chess_board[i]:
        # 현재 행이 짝수 행인지 홀수 행인지 확인
        if i % 2 == 0: # 짝수 행일 때
            for j in range(len(chess_board[i])):
                if j % 2 == 0 and chess_board[i][j] == 'F': # 짝수 열이면 흰색 칸이고 F가 있는지 확인
                    count += 1
        else: # 홀수 행일 때
            for j in range(len(chess_board[i])):
                if j % 2 == 1 and chess_board[i][j] == 'F': # 홀수 열이면 흰색 칸이고 F가 있는지 확인
                    count += 1
print(count)

메모리: 30864 KB
시간: 68 ms

profile
안녕하세요 : )

0개의 댓글

관련 채용 정보