파이썬 2차원 리스트 


이 문제를 풀 때 8x8의 체스판을 입력 받고 정의해야 한다. 

파이썬 2차원 리스트를 선언하는 방법은 다음과 같다.

파이썬 2차원 리스트는 좌표평면이나 행렬 등과 같은 표현을 해야할 때 쓰이므로, 익혀두는 게 좋을 것같다.

# 방법1
arr = [list(input()) for _ in range(8)]

# 방법2
arr = []
for i in range(8):
    arr.append(list(input()))

 

 

문제 해설


T F T F T F ...  
F T F T F ...    
T F T ...        
               
               
               
               
               

 

체크무늬 체스판을 떠올리면 된다. 하얀 칸 위에 말이 몇 개 있는지 출력해야 하기 때문에, 하얀 칸의 인덱스에 대한 정보를 알아야 한다. 이때 행렬 좌표의 특성을 활용하면 편하다.

 

(행번호, 열번호)로 좌표를 표현하면 다음과 같은데 각각의 행 번호와 열 번호를 더하면 짝수와 홀수가 번갈아 나온다.

이를 활용하여 하얀 칸을 표시해주면 된다.

 

0,0 0,1 0,2 0,3 0,4 ...    
1,0 1,1 1,2 1,3 ...      
2,0 2,1 ...          
...              
               
               
               
               

 

2차원 리스트는 이중 for문을 통해 표현할 수 있다.

하얀칸은 행 번호(i)와 열 번호(j)를 더한 값 중 짝수 번째로 표기해주기 위해 color로 지정해주었다.

 

 

전체 코드


# 이중 리스트 입력 받기
arr = [list(input()) for _ in range(8)]

ans = 0
for i in range(8):
    for j in range(8):
        color = (i+j) % 2
        if color == 0 and arr[i][j] == 'F': 
            ans += 1        
print(ans)
sebinChu