[20250819] BOJ / G2 / 로봇 조종하기 / 이종환 #690
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🧷 문제 링크
https://www.acmicpc.net/problem/2169
🧭 풀이 시간
30분
👀 체감 난이도
✏️ 문제 설명
로봇은 움직일 때 배열에서 왼쪽, 오른쪽, 아래쪽으로 이동할 수 있지만, 위쪽으로는 이동할 수 없다. 또한 한 번 탐사한 지역(배열에서 하나의 칸)은 탐사하지 않기로 한다.
각각의 지역은 탐사 가치가 있는데, 로봇을 배열의 왼쪽 위 (1, 1)에서 출발시켜 오른쪽 아래 (N, M)으로 보내려고 한다. 이때, 위의 조건을 만족하면서, 탐사한 지역들의 가치의 합이 최대가 되도록 하는 프로그램을 작성하시오.
🔍 풀이 방법
보자마자 dp를 생각했는데, 쉬운 것들과의 차이점은 왼쪽으로의 이동이 가능하다는 것이다. 그렇기에 dfs나 bfs에 dp를 합치기 보다는, 위에서부터 한 줄씩 어느방향에서 오는지에 따른 dp를 계산하는 방식으로 진행하였다.
이때 첫줄의 경우 예외처리할 것이 많아 보였기에 그냥 따로 메서드를 빼서 해결했습니다.
⏳ 회고
다시 슬슬 기억을 찾고 있습니다..