염딩코

[JavaScript] 백준 1520번 문제 풀이 본문

알고리즘 PS/Javascript

[JavaScript] 백준 1520번 문제 풀이

johnyeom 2023. 9. 22. 15:37

풀이를 생각해낸 과정

이 문제는 예전에 알고리즘 과제와 유사하다는 느낌을 받았다.

(그래서 예전 알고리즘 수업 자료도 보면서 다시 공부를 했다.)

 

목적지에 도달을 하면 경우의 수에 1을 더하는 방식을 생각을 했었고,

그 과정에서 지나온 경로들을 모두 처리해줘야 했었다.

 

지나온 경로는 상하좌우를 따지면서 내리막길인 경우에 다른 표기를 해야한다고 생각했다.

 

그렇게 목적지에 도달하면 해당 경우의 수를 1씩 증가시키면서 답을 구하려고 했다.

오렌지 부분에서 고민을 많이 했고, 시간이 너무 지체되어서 참고를 하면서 구현을 했다.

 

 

풀이에 대한 설명

세부적인 내용은 주석을 통해서 간단하게 설명을 했고 핵심적인 내용 위주로 설명을 하면

 

각각의 노드에 왔을 때, 상하좌우를 따지면서

범위를 벗어났다면 continue를 하여 진행하고,

 

내리막길이라는 조건을 만족한다면 다음 노드로 이동하기 위해서 재귀호출을 한다.

 

마지막 노드에 도달하면 1을 반환하면서 지나온 경로에 있는 노드들이 모두 1을 할당하면서(메모이제이션 활용) 지나온 경로에 대한 정보를 저장할 수 있다.