전망대까지 이어진 계단이 n칸 있습니다. 관람객은 땅바닥인 0번 칸에서 출발해 정확히 n번 칸에 도착해야 합니다.
한 번에 오를 수 있는 칸 수는 정해진 보폭 목록 steps 안의 값들뿐입니다.
예를 들어 steps = [1, 3]이면 한 번에 1칸 또는 3칸만 오를 수 있습니다.
여기에 더해, 보수 공사 중이라 부서진 칸 목록 broken에 들어 있는 칸은 밟을 수 없습니다.
그 칸을 딛고 쉬어 가는 것은 물론이고, 잠시 지나치는 것도 안 됩니다(뛰어넘는 것은 괜찮습니다).
전망대에 도착하는 서로 다른 방법의 수를 반환하는 solution(n, steps, broken) 함수를 작성하세요.
밟는 칸의 순서가 다르면 다른 방법으로 셉니다. 도착할 방법이 없으면 0을 반환합니다.
출발점인 0번 칸과 도착점인 n번 칸은 절대 부서지지 않습니다.
| n | steps | broken | 반환값 | 설명 |
|---|---|---|---|---|
| 4 | [1,2] |
[] |
5 | 1+1+1+1, 1+1+2, 1+2+1, 2+1+1, 2+2 |
| 4 | [1,2] |
[2] |
1 | 2번 칸을 피하는 길은 0→1→3→4 하나뿐 |
| 5 | [1,3] |
[2] |
2 | 0→1→4→5, 0→3→4→5 |
| 5 | [2] |
[] |
0 | 2칸씩으로는 홀수 칸에 도달 불가 |
n ≤ 40steps.length ≤ 3, steps의 원소는 1 이상 3 이하의 서로 다른 정수입니다broken의 원소는 1 이상 n - 1 이하의 서로 다른 정수이며, 비어 있을 수 있습니다시간 복잡도 목표: O(n × steps.length)
▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.