728x90
https://www.acmicpc.net/problem/1100
1100번: 하얀 칸
체스판은 8×8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램
www.acmicpc.net
풀이 과정
0번째 줄, 2번 째 줄 ... (짝수 번째 줄) 은 하얀색 칸으로 시작,
1번째 줄, 3번 째 줄 ... (홀수 번째 줄) 은 검은색 칸으로 시작하여 칸이 번갈아 나온다.
시작점이 다른 것을 이용하여 2차원 리스트 순회를 하면 된다.
아래 답 부분에서 [i][j] 형식이 아닌 [i][0][j]형식으로 인덱싱을 하는 이유는 중간중간 print 해보면 알겠지만 F.F.. 같은 하나하나의 줄들이 F와 .이 구분되어 리스트에 넣어지지 않고 하나의 줄 자체가 문자열 하나로 넣어져 있다.
따라서 2차원 리스트엔 원소 하나씩 밖에 들어가 있지 않은 것으로 표현된다.
따라서 [0]을 넣어주고 문자열 인덱싱을 해주어야 한다.
답
# 말 위치 입력받기
horses = []
for i in range(8):
horses.append(list(input().split()))
# 짝수번째 줄은 흰색이 먼저, 홀수번째 줄은 검은색이 먼저 배치
cnt = 0
for i in range(8):
if i % 2 == 0: # 짝수줄인 경우
for j in range(8):
if j % 2 == 0:
if horses[i][0][j] == "F": # 2차원 리스트의 요소 하나하나는 ''로 감싸진 하나의 문자열 -> 문자열 인덱싱을 해야하므로[0]이 중간에 낀 것
cnt += 1
else: # 홀수줄인 경우
for j in range(8):
if j % 2 == 1:
if horses[i][0][j] == "F":
cnt += 1
print(cnt)
코드는 깃허브에서 확인 가능합니다.
깃허브 링크
https://github.com/jaehhhk/algorithm
GitHub - jaehhhk/algorithm: 알고리즘 공부
알고리즘 공부. Contribute to jaehhhk/algorithm development by creating an account on GitHub.
github.com
728x90
'Programming Languages > Python' 카테고리의 다른 글
[Python] 2차원 리스트(배열) 만들기 (0) | 2022.12.24 |
---|---|
[Python] 파이썬으로 약수 구하는 방법 (0) | 2022.12.22 |
파이썬 버전3를 기본 버전으로 등록하기 (0) | 2022.12.21 |
[백준/python] 3181번 줄임말 만들기 (0) | 2022.09.29 |
[백준/python] 2750번 수 정렬하기 (1) | 2022.09.25 |