목차
📝 문제
📝 문제
🎯 알고리즘
💡 문제 이해
- 2차원 리스트 board는 색깔 정보를 담고 있음
- 현재 좌표는 (h, w)
→ 여기를 기준 칸이라고 하자! - 이 기준 칸의 상하좌우 네 칸 중에서
- 같은 색인 칸이 몇 개인지 세는 문제
💡 문제 접근
- 기준 칸 색을 변수에 저장: start = board [h][w]
- 방향벡터 설정:
- dx = [-1, 1, 0, 0] → 상하
- dy = [0, 0, -1, 1] → 좌우
- for문으로 4방향 순회하며:
- 이동한 칸이 범위 내인지 체크
- 색이 같으면 카운트 증가
- 최종 카운트를 반환
✅ 실습 인증 _코드
def solution(board, h, w):
answer = 0
start= board[h][w]
dx = [-1,1,0,0]
dy = [0,0,-1,1]
for i in range(4):
nx = h+ dx[i]
ny = w+ dy[i]
if 0<=nx<len(board) and 0<=ny<len(board):
if board[nx][ny] == start:
answer+=1
return answer
⚡ 트러블 슈팅
🔍 문제 상황 💥 원인 ✅ 해결 방법
❌ IndexError | 사방위 탐색 시 인덱스가 격자 범위 밖으로 나감 | 0 <= nx < len(board) 0 <= ny < len(board[0]) 로 범위 체크 필수 |
❌ TypeError | board[nx][ny] == board[h][w] 비교할 때 자료형이 다른 경우 (예: 문자열 vs 숫자) | 문제에서 색 정보가 어떤 타입인지 확인 후 정확히 비교 |
❌ 결과가 항상 0 | 사방위 탐색이 제대로 안 되었거나, 비교값이 잘못된 경우 | dx, dy 방향 설정이 맞는지, board[h][w] 기준 색을 제대로 저장했는지 확인 |
'알고리즘 > python' 카테고리의 다른 글
[백준/Python] 1297번: TV크기 (0) | 2025.04.24 |
---|---|
[백준/Python] 1296번: 팀 이름 정하기 (0) | 2025.04.22 |
[프로그래머스/Python] 42576번: 완주하지 못한 선수 (0) | 2025.04.22 |
[프로그래머스/Python] 340199번: 지폐접기 [PCCE 기출문제 9번] (0) | 2025.04.21 |
[프로그래머스/Python] 12943번: 콜라츠 추측 (0) | 2025.04.21 |