반응형
프로그래머스 Lv.1 이웃한 칸
https://school.programmers.co.kr/learn/courses/30/lessons/250125
문제 유형
시뮬레이션
구현 문제
풀이 방법 도출
주어진 2차원 보드판에서, 특정 칸 (h, w)를 기준으로 상하좌우 인접 칸 중 같은 색깔로 칠해진 칸의 개수를 구하는 문제입니다.
- 보드의 크기 n을 구합니다
- 상하좌우 방향을 나타내는 변화량 리스트 dh, dw를 설정합니다.
- i = 0 ~ 3까지 반복하며, 상하좌우 칸의 위치를 계산합니다.
- 해당 위치가 보드의 범위를 벗어나지 않는다면 기준 색상 (board[h][w])과 해당 위치 색상이 같은지 확인합니다. 같다면 count를 증가시킵니다.
- 최종적으로 count 값을 반환합니다.
시간 복잡도
- O(1)
핵심 코드 삽입 및 설명
from typing import List, Tuple
def solution(board, h, w):
n = len(board) # 보드의 길이
count = 0 # 같은 색으로 칠해진 칸의 개수
dh = [0, 1, -1, 0] # h 좌표 변화량
dw = [1, 0, 0, -1] # w 좌표 변화량
for i in range(4): # 상하좌우 탐색
h_check = h + dh[i] # 체크할 칸의 h 좌표
w_check = w + dw[i] # 체크할 칸의 w 좌표
if 0 <= h_check < n and 0 <= w_check < n: # 범위 체크
if board[h][w] == board[h_check][w_check]: # 같은 색깔인지 확인
count += 1
return count
반응형
'Study > 코딩 테스트' 카테고리의 다른 글
[백준] 11403번 경로 찾기 해설 및 풀이 (Python) (0) | 2025.05.03 |
---|---|
[백준] 1620번 나는야 포켓몬 마스터 이다솜 해설 및 풀이 (Python) (0) | 2025.05.01 |
[백준] 5639번 이진 검색 트리 해설 및 풀이 (Python) (0) | 2025.05.01 |
[프로그래머스] Lv.1 유연근무제 해설 및 풀이 (Python) (0) | 2025.04.30 |
[백준] 30804번 과일 탕후루 해설 및 풀이 (Python) (0) | 2025.04.30 |