Algorithm/Baekjoon
[백준 파이썬 1100번] 하얀칸 알고리즘 python
Codexx
2022. 4. 13. 23:44
문제 :
체스판이 8*8로 주어지고 하얀칸 위에 몇 개의 말이 있는지 출력하는 문제
답 :
ches=[input() for i in range(8)]
count = 0
for row in range(8): # row는 행 인덱싱에 활용
for col in range(8): # col은 열 인덱싱에 활용
if (row+col) % 2 == 0 and ches[row][col] == 'F': #하얀칸 위치 확인과 체스말 존재 확인
count += 1
print(count)
주목할 부분 :
1. 행(row)과 열(col)이 8*8로 정해짐
2. 열과 행의 인덱싱 방법
[문자열,문자열,,,문자열]으로 받아 2차원 배열의 기능을 사용하여 인덱싱한다.
문자열리스트 = ['사과','당근','수박']
문자열리스트[0]
>>> 사과
문자열리스트[0][0] (= '사과'[0])
>>> 사
3. 흰색 체스판의 위치를 잡아 'F'의 일치 여부 확인하기
-이 부분은 처음이라면 접근하기 힘들 수도 있다(나는 그랬다)
-흰색 칸의 위치들을 보면 [0][0], [0][2]..[1][1]..로 진행되고 있어,
-1,2차원 인덱스 값의 합에 2로 나눈 나머지가 0인 것을 알 수 있다.
for 행_idx in range(8): # 행 인덱스
for 열_idx in range(8): # 열 인덱스
#흰색 칸인지와 체스말이 있는지
if (행_idx + 열_idx) % 2 == 0 and 문자열_리스트[행_idx][열_idx] == 'F' :
count += 1 # 흰색 칸 위에 체스 말 카운트