

def solution(board, h, w):
answer = 0
#board의 길이
n = len(board)
count = 0
dh = [0, 1, -1, 0]
dw = [1, 0, 0, -1]
for i in range(4):
h_check = h + dh[i]
w_check = w + dw[i]
if 0 <= h_check < n and 0 <= w_check < n:
if board[h][w] == board[h_check][w_check]:
count += 1
return count
과정이 적혀 있어서 쉽게 풀었지만 한번더 이해하고 넘어가야 한다고 생각합니다.
우선 board의 길이를 찾습니다
n = len(board)
이후 같은색으로 색칠된 개수를 저장할 count를 저장합니다.
이후 '오른쪽, 아래, 왼쪽, 위' 로 이동할 변수를 만들어줍니다.
좌표설정 [0,0,1,-1] 을 겹치지 않게 설정해주면 됩니다.
예를들어
xh = [-1, 0, 1, 0]
yh = [0 , 1, 0, -1]
이런식으로 -1, 1들이 0과 겹치지만 않으면 됩니다.
이후 반복문을 4번 돌려줍니다. 이유는 방향은 4방향이기 때문입니다.
이후 이동한 위치를 저장할 변수를 만들어 줍니다
h_check = h+ dh[i]
w_check = w + dw[i]
이런식으로 기존의 좌표 h,w에서 이동좌표(상하좌우)
dh[i], dw[i]를 만들어줍니다.
첫번째 조건문은 만약 해당위치의 좌표에서 빠져나갔을때
즉 에러를 잡기위한 조건문이라고 생각하면 됩니다
if 0 <= h_check < n and 0 <= w_check < n:
만약 해당 보드판의 위치를 벗어나면 카운트를 세면 안되니 해당 조건문을 넣었습니다.
두번째 조건문은 시작 좌표의 색과 이동한 좌표의 색을 확인하는 조건문 입니다.
if board[h][w] == board[h_check][w_check]:
count += 1
시작좌표와 이동한 좌표의 색깔이 같으면 count를 +1증가시킵니다.