티스토리 뷰

 

www.acmicpc.net/problem/1463

 

1463번: 1로 만들기

첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.

www.acmicpc.net

 

n=1일 때 d[1]은 1이 아니라 0이다. 1->1은 변환이 일어나지 않는다. DP로 풀 때는 시작값 신경쓰기.

 

 

import java.io.*;
import java.util.*;
// 210323

public class Main_BJ_1463_1로만들기 {
	
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int N = Integer.parseInt(br.readLine().trim());
		int d[] = new int[N+1];
		d[1] = 0;
//		if(N>=3) d[3] = 1;
//		if(N>=2) d[2] = 1;
		
		for(int n=2; n<=N; n++) {
			d[n] = d[n-1]+1;
			if(n%2==0) d[n] = Math.min(d[n], d[n/2] + 1);
			if(n%3==0) d[n] = Math.min(d[n], d[n/3] + 1);
		}
		
		System.out.println(d[N]);
		
		br.close();
	}
}

'코딩테스트 > 백준' 카테고리의 다른 글

[BJ] 1600. 말이 되고픈 원숭이  (0) 2021.03.24
[BJ] 1149. RGB 거리  (0) 2021.03.23
[BJ] 2206. 벽 부수고 이동하기  (0) 2021.03.17
[BJ] 17070.파이프 옮기기1  (0) 2021.03.06
[BJ] 3109. 빵집  (0) 2021.03.06
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/09   »
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
글 보관함