
-Code
import java.io.*;
import java.util.*;
public class BOJ11060 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] miro = new int[n];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
miro[i] = Integer.parseInt(st.nextToken());
}
// dp 셋팅
int[] dp = new int[n];
// 최소값을 구하기 위해 max value로 셋팅
Arrays.fill(dp, Integer.MAX_VALUE);
// 시작점 초기화
dp[0] = 0;
for (int i = 0; i < n; i++) {
int jump = miro[i];
// 가지못하는 위치 처리
if (dp[i] == Integer.MAX_VALUE) continue;
// 이동
for (int j = 1; j <= jump; j++) {
// 이동거리가 목적지를 넘지 않는 경우
if (i + j < n) {
dp[i + j] = Math.min(dp[i] + 1, dp[i + j]);
}
}
}
System.out.println(dp[n - 1] == Integer.MAX_VALUE ? -1 : dp[n - 1]);
br.close();
}
}
로직 방향성은 맞았으나 방문하지 않은 경우만 탐색해서 처음에 틀렸고 그 부분을 수정한 뒤에는 max value인 부분은 도착을 안한 부분이라 탐색하면 안되는데 탐색해 버려서 2번 틀렸었습니다. 이 부분들을 수정하여 해결하였습니다.
'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [백준/Java] 14494번 다이나믹이 뭐예요? (0) | 2026.01.12 |
|---|---|
| [백준/Java] 18353번 병사 배치하기 (0) | 2026.01.12 |
| [프로그래머스/Java] H-Index (0) | 2026.01.12 |
| [백준/Java] 16306번 Cardboard Container (0) | 2026.01.12 |
| [프로그래머스/Java] 여행경로 (0) | 2026.01.11 |