장애물이 있는 최소 경로 합
각 칸을 지나며 최선의 비용을 이어 갑니다
장애물이 있는 최소 경로 합은(는) CoddyKit의 무료 Coding Interview Prep 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Coding Interview Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Coding Interview Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
개수 세기에서 비용 계산으로
이제 각 칸에 값이 있고 모서리까지 가는 가장 저렴한 경로를 구하려고 합니다. 목표가 경로 개수 세기에서 비용 최소화로 바뀝니다.
상태 정의하기
dp[i][j]를 (i, j) 칸에 도달하는 최소 총비용이라고 하겠습니다. 같은 격자와 같은 이동을 사용하지만, 개수 대신 합을 추적합니다.
전이
들어오는 두 이웃 칸 중 더 저렴한 것을 고른 다음 현재 칸의 값을 더합니다. 이 최솟값 선택이 점화식의 핵심입니다.
dp[i][j] = grid[i][j] + min(dp[i-1][j], dp[i][j-1])장애물 표시하기
장애물은 그 위에 설 수 없는 칸입니다. 해당 칸의 비용을 무한대로 설정하면 그 칸을 지나는 경로가 최솟값이 될 수 없습니다.
INF = float('inf')깔끔하게 차단하기
격자에서 칸이 막힌 것으로 표시되면 해당 칸의 dp를 무한대로 설정하고 넘어가세요. 최솟값을 구하는 단계에서 자연스럽게 그 칸을 피하게 됩니다.
if blocked(i, j):
dp[i][j] = INF
continue시작점 확인하기
시작 칸 자체가 막혀 있다면 경로가 전혀 없습니다. 잘못된 비용을 반환하지 않도록 먼저 확인하세요.
첫 셀 초기화하기
시작 칸으로 들어오는 이웃은 없으므로 비용은 자신의 값뿐입니다. 반복문을 실행하기 전에 dp[0][0]을 설정하세요.
dp[0][0] = grid[0][0]경계 처리하기
맨 위 행은 왼쪽에서만 이어지고 맨 왼쪽 열은 위쪽에서만 이어집니다. 격자 밖을 읽지 않도록 이 경계를 처리하세요.
무한대 전파
무한대에 값을 더해도 무한대이므로, 사방이 막힌 칸은 INF 비용을 유지합니다. 도달할 수 없는 칸은 자동으로 그 사실을 나타냅니다.
결과 확인하기
최소 비용은 오른쪽 아래 칸에 있습니다. 그 값이 여전히 무한대라면 유효한 경로가 전혀 없는 것입니다.
ans = dp[m-1][n-1]
if ans == INF:
ans = -1여기서 탐욕법이 실패하는 이유
더 작은 이웃 칸을 향해 항상 이동하면 막다른 길에 갇힐 수 있습니다. 탐욕적으로 한 단계만 살펴보는 방식이 아니라, 전체 DP만이 전역적으로 가장 저렴한 경로를 보장합니다.
빠른 확인
모든 이웃을 특별히 처리하지 않고도 경로 DP가 막힌 칸을 피하게 하려면 어떻게 해야 할까요?
복습: 장애물이 있는 최소 경로
더 저렴한 이웃 칸에 현재 칸의 값을 더하고, 막힌 칸은 무한대로 설정한 다음 모서리를 확인하세요. 그곳이 INF라면 경로가 없습니다. 🧱
자주 묻는 질문
“장애물이 있는 최소 경로 합” 강의는 무료인가요?
네 — “장애물이 있는 최소 경로 합” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Coding Interview Prep 강의 전체를 잠금 해제할 수 있습니다. Coding Interview Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
“장애물이 있는 최소 경로 합”에서 뭘 배우나요?
각 칸을 지나며 최선의 비용을 이어 갑니다 브라우저에서 직접 실행하는 실습 코드로 Coding Interview Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Coding Interview Prep을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Coding Interview Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“장애물이 있는 최소 경로 합” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Coding Interview Prep 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Coding Interview Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 격자에서 경로 개수 세기
- 장애물이 있는 최소 경로 합
- 최장 공통 부분 수열
- 편집 거리 단계별 이해하기