01-25 03:45
Recent Posts
Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

miinsun

[BAEKJOON] ๋ฐฑ์ค€ DP 1463 :: 1๋กœ ๋งŒ๋“ค๊ธฐ JAVA ๋ณธ๋ฌธ

Algorithm/Baekjoon

[BAEKJOON] ๋ฐฑ์ค€ DP 1463 :: 1๋กœ ๋งŒ๋“ค๊ธฐ JAVA

miinsun 2022. 3. 12. 16:37

 

๐Ÿ’ฌ  ๋ฌธ์ œ ์„ค๋ช…

์ •์ˆ˜ X์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ธ ๊ฐ€์ง€ ์ด๋‹ค.

* X๊ฐ€ 3์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด, 3์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค.
* X๊ฐ€ 2๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด, 2๋กœ ๋‚˜๋ˆˆ๋‹ค.
* 1์„ ๋บ€๋‹ค.

์ •์ˆ˜ N์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์œ„์™€ ๊ฐ™์€ ์—ฐ์‚ฐ ์„ธ ๊ฐœ๋ฅผ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•ด์„œ 1์„ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค.
์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•˜๋Š” ํšŸ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•˜์‹œ์˜ค.

 

๐Ÿ”จ  ์ž…์ถœ๋ ฅ ์˜ˆ

์ž…๋ ฅ 

  • ์ฒซ์งธ ์ค„์— 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 106๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค.
 

์ถœ๋ ฅ

  • ์ฒซ์งธ ์ค„์— ์—ฐ์‚ฐ์„ ํ•˜๋Š” ํšŸ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ 1)

2

 

์˜ˆ์ œ ์ถœ๋ ฅ 1)

1

 

์˜ˆ์ œ ์ž…๋ ฅ 2)

10

 

์˜ˆ์ œ ์ถœ๋ ฅ 2)

3

โ€‹

Hint ) 10์˜ ๊ฒฝ์šฐ์— 10 -> 9 -> 3 -> 1 ๋กœ 3๋ฒˆ ๋งŒ์— ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

 

โ€‹

๐Ÿ’ป  Main.java

  • DP๋ฅผ ์ด์šฉํ•ด ๋ฌธ์ œ๋ฅผ ํ‘ผ๋‹ค. ๊ฐ๊ฐ์˜ ์—ฐ์‚ฐ์˜ ์ตœ์†Ÿ๊ฐ’์„ dy[n]์— ์ €์žฅํ•œ๋‹ค.
  • dy[0] = 0, dy[1] =0 ์ด๋‹ค.
  • ๋ชจ๋“  ๊ฐ’์€ 1๋กœ ๋บ์„ ๋•Œ์˜ ๊ฐ’์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, 1๋กœ ๋บ์„ ๋•Œ์˜ ๊ฐ’์„ ๊ธฐ๋ณธ์œผ๋กœ ์žก์•„์ฃผ์ž.
  • 2๋กœ ๋‚˜๋ˆ„์–ด ์งˆ๋•Œ, 3์œผ๋กœ ๋‚˜๋ˆ„์–ด ์งˆ๋•Œ์˜ ์ตœ์†Ÿ๊ฐ’์„ ๊ณ„์‚ฐํ•œ๋‹ค. 
  • 6์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์งˆ ๋•Œ, 2์™€ 3์œผ๋กœ ๋‚˜๋ˆด์„ ๋•Œ์™€ 1์„ ๋บ์„ ๋•Œ๋ฅผ ๋ชจ๋‘ ๋น„๊ตํ•ด์ค€๋‹ค.
/* ๋ฐฑ์ค€ DP - 1463 :: 1๋กœ ๋งŒ๋“ค */
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] dy = new int[n + 1];
		
		for(int i = 2; i <= n; i++) {
			dy[i] = dy[i - 1] + 1;
			
			if(i % 6 == 0) {
				dy[i] = Math.min(dy[i / 3] + 1, Math.min(dy[i / 2] + 1, dy[i]));
			}
			else if(i % 3 == 0) {
				dy[i] = Math.min(dy[i / 3] + 1, dy[i]);
			}
			else if(i % 2 == 0) {
				dy[i] = Math.min(dy[i / 2] + 1, dy[i]);
			}
		}
		
		System.out.println(dy[n]);
		sc.close();
	}
}
Comments