01-10 04:27
Recent Posts
Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

miinsun

[BAEKJOON] ๋ฐฑ์ค€ DP 9095 :: 1, 2, 3 ๋”ํ•˜๊ธฐ JAVA ๋ณธ๋ฌธ

Algorithm/Baekjoon

[BAEKJOON] ๋ฐฑ์ค€ DP 9095 :: 1, 2, 3 ๋”ํ•˜๊ธฐ JAVA

miinsun 2022. 3. 13. 00:11

 

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

์ •์ˆ˜ 4๋ฅผ 1, 2, 3์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•์€ ์ด 7๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ํ•ฉ์„ ๋‚˜ํƒ€๋‚ผ ๋•Œ๋Š” ์ˆ˜๋ฅผ 1๊ฐœ ์ด์ƒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

* 1+1+1+1
* 1+1+2
* 1+2+1
* 2+1+1
* 2+2
* 1+3
* 3+1

์ •์ˆ˜ n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, n์„ 1, 2, 3์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

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

์ž…๋ ฅ 

  • ์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.
  • ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ•œ ์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ์ •์ˆ˜ n์ด ์ฃผ์–ด์ง„๋‹ค. n์€ ์–‘์ˆ˜์ด๋ฉฐ 11๋ณด๋‹ค ์ž‘๋‹ค.

 

์ถœ๋ ฅ

  • ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค, n์„ 1, 2, 3์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

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

3
4
7
10

 

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

7
44
274

 

โ€‹

๐Ÿ’ป  Main.java

 

  • DP๋ฅผ ์ด์šฉํ•ด ๋ฌธ์ œ๋ฅผ ํ‘ผ๋‹ค. ๊ฐ๊ฐ์˜ ํ‘œํ˜„ ๋ฐฉ๋ฒ•์„ dy[n]์— ์ €์žฅํ•œ๋‹ค.
  • ๊ทœ์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. dy[i] = dy[i-1] + dy[i-2] + dy[i-3]
  • dy[1]๊ณผ dy[2], dy[3]๋ฅผ ์ง์ ‘ ์„ค์ •ํ•ด์ค€๋‹ค.

 

/* ๋ฐฑ์ค€ DP - 9095 :: 1, 2, 3 ๋”ํ•˜๊ธฐ */
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[12];
		
		dy[1] = 1; 
        dy[2] = 2;
        dy[3] = 4;
        
    	for(int i = 4; i <= 11; i++) {
    		dy[i] = dy[i - 1] + dy[i - 2] + dy[i - 3];
    	}
    	
    	for(int i = 0; i < n; i++) {
    		int tmp = sc.nextInt();
    		System.out.println(dy[tmp]);
		}
    	
		sc.close();
	} 
}
Comments