파이썬 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)
'PS > BOJ&Programmers' 카테고리의 다른 글
[백준/13424] Three Dots / 완전탐색 - 파이썬 (0) | 2023.01.17 |
---|---|
[백준/12759] 틱! 택! 토! - 파이썬 (1) | 2023.01.17 |
[백준/11652] 카드 - 파이썬 (0) | 2023.01.14 |
[백준/14582] 오늘도 졌다 | 야구 | 파이썬 리스트 누적합 (0) | 2023.01.14 |
[백준/7510] 고급 수학 (0) | 2023.01.14 |