{}연습장
대시보드학습스킬 경로문제모의고사라이브 코테복습데이터
문제 목록〉DP〉창고 적재 구역 배송 경로← 이전다음 →
#088 · DP쉬움DP 입문 / 격자 경로

창고 적재 구역 배송 경로

문제

물류 창고 바닥은 격자로 나뉘어 있고, 배송 로봇은 왼쪽 위 칸에서 출발해 오른쪽 아래 칸까지 이동합니다. 로봇은 한 번에 오른쪽 또는 아래쪽으로만 한 칸 움직입니다.

창고 도면 warehouse가 2차원 배열로 주어집니다.

  • 0: 지나갈 수 있는 통로
  • 1: 적재물이 쌓여 있어 지나갈 수 없는 칸

출발 칸에서 도착 칸까지 가는 서로 다른 경로의 수를 반환하는 solution(warehouse)를 구현하세요. 갈 수 있는 경로가 없으면 0을 반환합니다. 출발 칸이나 도착 칸 자체가 막혀 있는 경우도 경로가 없는 것으로 봅니다.

예시

warehouse 반환값 설명
[[0,0,0],[0,1,0],[0,0,0]] 2 가운데가 막혀 위쪽·왼쪽 가장자리를 도는 두 경로
[[0,1],[0,0]] 1 아래로 간 뒤 오른쪽으로
[[0,0,0],[1,1,1],[0,0,0]] 0 가운데 줄이 완전히 막힘
[[0,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,0]] 4 적재물 두 곳을 피해 가는 경로 4가지

제약 조건

  • 1 ≤ 행 수, 열 수 ≤ 16
  • warehouse[i][j]는 0 또는 1
  • 경로 수는 안전한 정수 범위를 넘지 않습니다

시간 복잡도 목표: O(행 수 × 열 수)

테스트 케이스

예시 1: 가운데 적재물
입력: warehouse = [[0,0,0],[0,1,0],[0,0,0]]
출력: 2
예시 2: 오른쪽 위가 막힘
입력: warehouse = [[0,1],[0,0]]
출력: 1
예시 3: 가운데 줄 전체가 막힘
입력: warehouse = [[0,0,0],[1,1,1],[0,0,0]]
출력: 0
예시 4: 적재물 두 곳
입력: warehouse = [[0,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,0]]
출력: 4
1×1 창고 — 이동 없이 도착
입력: warehouse = [[0]]
출력: 1
출발 칸이 막힘
입력: warehouse = [[1,0],[0,0]]
출력: 0
도착 칸이 막힘
입력: warehouse = [[0,0],[0,1]]
출력: 0
장애물 없는 4×6 창고
입력: warehouse = [[0,0,0,0,0,0],[0,0,0,0,0,0],[0,0,0,0,0,0],[0,0,0,0,0,0]]
출력: 56
적재물이 흩어진 4×5 창고
입력: warehouse = [[0,0,1,0,0],[0,0,0,0,0],[1,0,0,1,0],[0,0,0,0,0]]
출력: 8
solution.ts
에디터 로딩 중…

▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.