[PCCE 기출문제] 9번 / 이웃한 칸
• bamjun
- 함수 정의:
def solution(board, h, w):
이는
solution
이라는 이름의 함수를 정의합니다. 이 함수는 세 개의 매개변수를 가집니다:board
: 2차원 배열(리스트의 리스트).h
:board
에서의 행 인덱스를 나타내는 정수.w
:board
에서의 열 인덱스를 나타내는 정수.
- 초기화:
n = len(board) count = 0
n
은 보드의 길이, 즉 보드의 행 수로 설정됩니다.count
는 0으로 초기화됩니다. 이 변수는 특정 요소들을 세는데 사용됩니다.
- 방향 벡터:
dh = [0, 1, -1, 0] dw = [1, 0, 0, -1]
이 리스트들은 현재 위치
(h, w)
에서 이동할 방향을 정의합니다. 각 인덱스는 하나의 방향을 나타냅니다:- 오른쪽:
(dh[0], dw[0]) = (0, 1)
- 아래:
(dh[1], dw[1]) = (1, 0)
- 위:
(dh[2], dw[2]) = (-1, 0)
- 왼쪽:
(dh[3], dw[3]) = (0, -1)
- 오른쪽:
- 방향별 반복:
for i in range(4): h_check = h + dh[i] w_check = w + dw[i] ...
이 루프는 네 번 반복되며, 각각의 방향에 대해 한 번씩 실행됩니다.
h_check
와w_check
는 현재 방향으로 이동한 후의 새로운 행과 열 인덱스를 계산합니다. - 경계 검사:
if n > h_check >= 0 and 0 <= w_check < n:
이 줄은 새 위치
(h_check, w_check)
가 보드의 경계 내에 있는지 확인합니다. 행 인덱스h_check
와 열 인덱스w_check
가[0, n)
범위 내에 있는지를 확인합니다. - 요소 비교 및 카운트:
if board[h][w] == board[h_check][w_check]: count += 1
여기서 함수는 현재 위치
(h, w)
의 요소가 새 위치(h_check, w_check)
의 요소와 같은지 확인합니다. 같다면count
를 1 증가시킵니다. - 리턴문:
return count
마지막으로, 함수는
count
를 반환합니다.
요약하자면, 이 함수는 2D 배열에서 지정된 위치의 인접 요소(오른쪽, 아래, 위, 왼쪽)를 확인하고, 해당 위치의 요소와 일치하는 요소들의 수를 세는 역할을 합니다. 예를 들어, 게임에서 특정 타일 주변의 매칭 타일이나 요소들을 확인하는 데 사용될 수 있습니다.
Share on: