원본 : https://school.programmers.co.kr/learn/courses/30/lessons/154538
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
import java.util.Arrays;
class Solution {
public int solution(int x, int y, int n) {
int[] dp = new int[y + 1];
Arrays.fill(dp, Integer.MAX_VALUE);
dp[x] = 0;
for (int i = x + 1; i < dp.length; i++) {
int minusN = Integer.MAX_VALUE;
int div2 = Integer.MAX_VALUE;
int div3 = Integer.MAX_VALUE;
if (i - n >= 0 && i - n >= x) {
minusN = dp[i - n];
}
if (i % 2 == 0 && i / 2 >= 0 && i - n >= x) {
div2 = dp[i / 2];
}
if (i % 3 == 0 && i / 3 >= 0 && i - n >= x) {
div3 = dp[i / 3];
}
int min = Math.min(minusN, Math.min(div2, div3));
if (min != Integer.MAX_VALUE) {
dp[i] = min + 1;
}
}
return dp[y] == Integer.MAX_VALUE ? -1 : dp[y];
}
}
무인도 여행 (연습문제) (0) | 2023.05.23 |
---|---|
당구 연습 (연습문제) (0) | 2023.05.23 |
과제 진행하기 (연습문제) (0) | 2023.05.08 |
연속된 부분 수열의 합 (연습문제) (0) | 2023.05.08 |
혼자서 하는 틱택토 (연습문제) (0) | 2023.05.08 |
댓글 영역