반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 백준 11057번
- Kotlin
- 백준 1904번
- Spring
- 프로세스 조회
- 백준 9095번
- docker container 한번에 지우기
- DP
- 자바
- kotlin record
- 백준
- 코테
- BFS
- 코틀린
- 프로세스 kill
- 정보처리기사 교재 없이
- DFS
- requirements 생성
- 백준 14442번
- 정보처리기사 필기 합격 후기
- 백준 11048번
- docker image 한번에 지우기
- docker
- 백준 2670
- 자료구조
- 도커 중복 이미지
- 문자열에서 원하는 문자 개수 찾기
- 백준 25418
- Java
- 백준 15903번
Archives
- Today
- Total
개발자로 살아남기
[백준-25418번] 정수 a를 k로 만들기 - Java 본문
반응형
🚀 문제
https://www.acmicpc.net/problem/25418
🚀 접근 방법
BFS나 DFS로 풀려다가 DP로 푸는게 더 간단해서 DP로 풀었다.
그냥 A%2==0을 조건으로 주면 안되고 A의 2배수보다 커야한다!
🚀 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
int[] infos = Arrays.stream(in.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
int a = infos[0];
int k = infos[1];
int[] dp = new int[k+1];
for(int i=a+1; i<=k; i++){
dp[i] = dp[i-1]+1;
if(i>=a*2 && i%2==0)
dp[i] = Math.min(dp[i/2]+1, dp[i]);
}
out.write(Integer.toString(dp[k]));
out.flush();
out.close();
in.close();
}
}
반응형
'코딩테스트' 카테고리의 다른 글
[백준-2193번] 이친수 풀이 - Java (0) | 2025.06.06 |
---|---|
[백준-11057번] 오르막 수 풀이 - Java (0) | 2025.06.06 |
[백준-2839번] 설탕 배달 - Java (0) | 2025.06.06 |
[백준-10844번] 쉬운 계단 수 - Java (0) | 2025.06.05 |
[백준-2579번] 계단 오르기 - Java (0) | 2025.06.03 |