-
[백준 파이썬 1100번] 하얀칸 알고리즘 pythonAlgorithm/Baekjoon 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 # 흰색 칸 위에 체스 말 카운트
'Algorithm > Baekjoon' 카테고리의 다른 글
백준 1920번 수 찾기 파이썬 python (0) 2022.04.29 백준 1526번 python 가장 큰 금민수 (0) 2022.04.19 [백준 파이썬 1259번] 팰린드롬수 알고리즘 python (0) 2022.04.14 [백준 파이썬 1225번] 이상한 곱셈 알고리즘 python (0) 2022.04.14 [백준 파이썬 1110번] 더하기 사이클 알고리즘 python (0) 2022.03.31