오늘은 공강겸 근로도 없는 날이라 오전에 푹 쉬고 오후에 문제 풀었다.
자전거 묘기_25706
Dp를 활용해서 '현재 = 그 앞 + 1' 이렇게 계산하면 쉽게 풀린다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class 자전거묘기_25706 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
int[] arr = new int[n+1];
int[] dp = new int[n+1];
for (int i = 0; i < n; i++) {
String s = st.nextToken();
arr[i] = Integer.parseInt(s);
}
for (int i = n-1; i >= 0; i--) {
int jump = arr[i];
if (i + jump + 1 > n) {
dp[i] = 1;
} else {
dp[i] = dp[i + jump + 1] + 1;
}
}
for (int i = 0; i < n; i++) {
bw.write(dp[i] + " ");
}
bw.flush();
bw.close();
}
}
알바 가는데 비가 왕창 내려서 피곤했던 하루...