Skip to content

Conversation

@0takkk
Copy link
Collaborator

@0takkk 0takkk commented Oct 10, 2022

풀이

등산로는 가장 높은 봉우리에서 시작하여 등산로의 높이가 이전 위치보다 낮은 곳으로만 내려갈 수 있습니다.
하자만, 내려가는 길에 딱 한 곳을 정해서 최대 K 깊이만큼 지형을 깍을 수 있는데, 이러한 규칙을 따르면서 등산로의 최장 거리를 찾는 문제입니다.

우선 입력을 받으면서 가장 높은 봉우리의 높이를 구했고, 그 봉우리에서부터 dfs로 내려갈 수 있는 등산로의 길이를 구했습니다.
dfs에서 4방 탐색을 통해 아직 방문하지 않은 위치에 대해 산을 깍지 않고 갈 수 있는 위치는 그냥 이동해주었습니다.
산을 깍아야지만 이동할 수 있는 위치에 대해서 처리가 중요한데,
이 위치까지 오기 전에 이미 깍아서 rest가 0이라면 더 이상 이동할 수 없습니다.
아직 깍을 수 있다면, 다음 위치의 높이에서 K만큼 깍아보고 이 높이가 현재 위치보다 낮아 갈 수 있게 된다면 이동하게 했습니다.
그런데 여기서 K만큼 전부 깍을 필요없이, 현재 위치보다 1만 작게 깍아야 이 후의 다른 위치로 이동할 수 있을 확률이 높아지니 1만 작게 깍았습니다.

리뷰 요청 사항

궁금한 점이나 더 좋은 방법이 있다면 리뷰 남겨주세요.

느낀점

벽 부수고 이동하기나, 말이 되고픈 원숭이와 비슷한 문제라고 생각했는데, 이 문제는 최장 거리를 구해야 한다는 것이 달랐습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant