목차
- 문제
- 내가 푼 방법
- 자바 코드
- 결과 및 회고
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/154538
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
2. 내가 푼 방법
dp로 풀었는데, 재귀를 돌리니 최종 제출에서 런타임 에러를 마주했다. 그래서 for문을 돌려서 해결했다.
3. 자바 코드
깃허브 풀이 주소
import java.util.*;
class Solution {
public int solution(int x, int y, int n) {
Integer[] dp = new Integer[y+1];
dp[x] = 0;
for (int i = x; i <= y; i++) {
if (dp[i] == null) continue;
if (i + n <= y) {
if (dp[i+n] == null) dp[i+n] = dp[i] + 1;
else dp[i+n] = Math.min(dp[i+n], dp[i]+1);
}
if (i * 2 <= y) {
if (dp[i*2] == null) dp[i*2] = dp[i] + 1;
else dp[i*2] = Math.min(dp[i*2], dp[i]+1);
}
if (i * 3 <= y) {
if (dp[i*3] == null) dp[i*3] = dp[i] + 1;
else dp[i*3] = Math.min(dp[i*3], dp[i]+1);
}
}
if (dp[y] == null) return -1;
return dp[y];
}
}
4. 결과 및 회고
다른 분들이 재귀 깊이 한도가 있는 것 같다고 말씀해 주셨는데, 그래서 레벨 2인가? ㅎㅎ..
깔끔하게 작성하도록 노력해보장.
'문제풀이 > 프로그래머스' 카테고리의 다른 글
[JAVA] 프로그래머스 - 소수 찾기 (0) | 2023.05.09 |
---|---|
[JAVA] 프로그래머스 - 가장 큰 수 (0) | 2023.05.09 |
[Python] 영어 끝말잇기 (0) | 2022.09.26 |
[Python, JAVA] 프로그래머스 - 다음 큰 숫자 (0) | 2022.09.26 |
[JAVA] 프로그래머스 - 카카오프렌즈 컬러링북 (0) | 2022.04.06 |
댓글