Deep_Dev
article thumbnail

https://www.acmicpc.net/problem/9095

 

9095๋ฒˆ: 1, 2, 3 ๋”ํ•˜๊ธฐ

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

www.acmicpc.net


์ด ๋ฌธ์ œ๋Š” ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ด์šฉํ•˜์—ฌ ํ’€ ์ˆ˜ ์žˆ๋‹ค.

dp 1์ฐจ์› ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๊ณ , dp[n] ๋Š” ์ •์ˆ˜ n์„ 1,2,3 ์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

dp[1] ์€ 1๋กœ๋งŒ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ 1๊ฐ€์ง€์ด๋‹ค.

 

n = 1 ์ผ ๋•Œ,

1

ํ•œ ๊ฐ€์ง€์ด๋ฏ€๋กœ dp[1] = 1 ์ด๋‹ค.

 

n = 2 ์ผ ๋•Œ,

1 + 1

2

๋‘ ๊ฐ€์ง€์ด๋ฏ€๋กœ dp[2] = 2 ์ด๋‹ค.

 

n = 3 ์ผ ๋•Œ,

1 + 1 + 1

2 + 1

1 + 2

3

์ด 4๊ฐ€์ง€์ด๋ฏ€๋กœ dp[3] = 4 ์ด๋‹ค.

 

n = 4 ์ผ ๋•Œ,

1 + 1 + 1 +1

2 + 1 + 1

1 + 2 + 1

3 + 1

1 + 1 + 2

2 + 2

1 + 3

์ด 7๊ฐ€์ง€์ด๋ฏ€๋กœ dp[4] = 7 ์ด๋‹ค.

๊ทธ๋Ÿฐ๋ฐ n = 4 ์ธ ๊ฒฝ์šฐ์˜ ์ˆ˜์—์„œ ์•„๋ž˜์˜ ๋นจ๊ฐ„์ƒ‰ ๋ถ€๋ถ„์˜ ์—ฐ์‚ฐ์€ dp[3]์— ํฌํ•จ๋œ ๊ฒฝ์šฐ์˜ ์ˆ˜์™€ ๊ฐ™๋‹ค.

1 + 1 + 1 +1

2 + 1 + 1

1 + 2 + 1

3 + 1

 

์•„๋ž˜์˜ ํŒŒ๋ž€์ƒ‰ ๋ถ€๋ถ„์˜ ์—ฐ์‚ฐ ์—ญ์‹œ dp[2]์— ํฌํ•จ๋œ ๊ฒฝ์šฐ์˜ ์ˆ˜์™€ ๋™์ผํ•˜๋‹ค.

1 + 1 + 2

2 + 2

 

์•„๋ž˜์˜ ์ดˆ๋ก์ƒ‰ ๋ถ€๋ถ„์˜ ์—ฐ์‚ฐ์€ dp[1]์— ํฌํ•จ๋œ ๊ฒฝ์šฐ์˜ ์ˆ˜์ด๋‹ค.

1 + 3

 

์ฆ‰, dp[4] ๋Š” ๊ฒฐ๊ตญ dp[3] + dp[2] + dp[1]์„ ๋”ํ•œ ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.์—ฌ๊ธฐ์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ ํ™”์‹์€ dp[n] = dp[n-1] + dp[n-2] + dp[n-1] ์ด ๋œ๋‹ค.์ ํ™”์‹์„ ์–ป์—ˆ์œผ๋‹ˆ ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ dp์˜ ๊ฐ’๋“ค์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

import java.util.*;
import java.math.*;
public class Main {
	
	static int dp[] = new int [11];
	
	public static void main(String[] args)   {
		Scanner kb = new Scanner(System.in);
		
		int t = kb.nextInt();
		dp[1]=1; //์ดˆ๊ธฐ ๊ฐ’ ์ดˆ๊ธฐํ™”
		dp[2]=2;
		dp[3]=4;
		
		for(int j=4;j<=10;j++) { // 4๋ถ€ํ„ฐ ๋ฐ˜๋ณต
			dp[j] = dp[j-3] + dp[j-2] + dp[j-1]; // ์ ํ™”์‹
		}
		
		for(int i=0;i<t;i++) {
			int n = kb.nextInt();
			System.out.println(dp[n]);
		}
	}
}