1697번: 숨바꼭질
수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일
www.acmicpc.net
고려해야 될 부분
1. N이 0인 경우
2. K가 N보다 왼쪽에 있는 경우
if(i%2)==0 이면 dp[i]=Math.min(dp[i/2]+1, dp[i-1]+1)
if(i%2)!=0 이면 dp[i]=Math.min(dp[i-1]+1, dp[i+1]+1)
import java.util.*;
public class Main {
public static void main(String[] args) {
int N,K;
Scanner sc=new Scanner(System.in);
N=sc.nextInt();
K=sc.nextInt();
int[] dp=new int[K+2];
if(N<=K) {
if(N>0) {
for(int i=N;i>0;i--) {
dp[i-1]=dp[i]+1;
}
}
for(int i=N+1;i<=K+1;i++) {
if((i%2)==0) {
dp[i]=Math.min(dp[i/2]+1,dp[i-1]+1);
dp[i-1]=Math.min(dp[i-1], dp[i]+1);
}
else {
dp[i]=dp[i-1]+1;
}
}
System.out.println(dp[K]);
}
else {
System.out.println(N-K);
}
}
}
'코테 공부' 카테고리의 다른 글
[DP]점프 점프(백준 11060번), 자바 (0) | 2022.06.29 |
---|---|
[DP]점프(백준 1890번), 자바(ㅁㅁ) (0) | 2022.06.28 |
[DP]여행(백준 2157번), 자바(ㅁㅁㅁ) (0) | 2022.06.22 |
[DP]문제#12.동전1 (0) | 2022.05.11 |
[DP]문제#11.동전2(☆) (0) | 2022.05.11 |