연습
프로그래머스 등굣길
onaeonae1
2024. 4. 17. 20:05
문제 설명 및 접근법
- 약간 확통 문제 느낌이다
- x,y 기준으로 표기했을 때, (1,1) 에서 시작해서 (m, n) 까지 가능한 경우의 수 찾는 것
- 중간에 폭우로 길이 막힌 구간이 있는 것을 감안해서 다음과 같이 DP 적으로 접근하면 된다
- DP 2차원 배열을 만들고 모두 1로 초기화, 우물 관련 처리되는 부분들은 0으로
- DP[x][y] = DP[x-1][y] + DP[x][y-1]
점화식에서 어려울 것은 없고 길이 막힌 경우들을 처리해주면 된다
엣지 케이스
크게 어려움이 되는 케이스들은 다음과 같았다
- 왼쪽끝 (x==1) 혹은 위쪽끝(y==1) 에 물로 막힌 경우
- 해당 줄의 DP를 모두 0 으로 처리
코드
DP연습을 자주 합시다
눈에 딱 DP로 보여서 재귀로 접근하는 사람들은 많지 않을 텐데, 굳이 재귀로 접근한다면 효율성에서 터짐