[Algorithm] ๐Ÿงฑ๋ฐฑ์ค€ 11726 2xN ํƒ€์ผ๋ง

HaJingJingยท2021๋…„ 4์›” 22์ผ
0

Algorithm

๋ชฉ๋ก ๋ณด๊ธฐ
14/119

0. ๋ฌธ์ œ

2ร—n ํฌ๊ธฐ์˜ ์ง์‚ฌ๊ฐํ˜•์„ 1ร—2, 2ร—1 ํƒ€์ผ๋กœ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ
์ฒซ์งธ ์ค„์— n์ด ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค n โ‰ค 1,000)

์ถœ๋ ฅ
์ฒซ์งธ ์ค„์— 2ร—n ํฌ๊ธฐ์˜ ์ง์‚ฌ๊ฐํ˜•์„ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ 10,007๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

1. ์•„์ด๋””์–ด

์ด์ „ ์‚ฌ๋ก€ ๋‘ ๊ฐœ๋ฅผ ๋”ํ•œ ๊ฐ’์ด ํ˜„์žฌ ๊ฐ’๊ณผ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋จ
๋ฉ”๋ชจ์ด์ œ์ด์…˜์œผ๋กœ TopDownํ•˜๋Š” ํ˜•ํƒœ๋กœ ํ’€๋ฉด ๋จ

3. ํ•ต์‹ฌ ํ’€์ด

dp[n] = dp[n-1] + dp[n-2]

dp[n] = tiling(n-1) + tiling(n-2)

4. ์ฝ”๋“œ

import java.util.Scanner;

public class DP_1 {
	static int dp[];
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		
		dp = new int[n+1];
		System.out.println(tiling(n));

	}
	
	static int tiling(int n) {
		if(n == 0 || n == 1) return 1;
		
		if(dp[n] > 0) return dp[n];
		
		dp[n] = tiling(n-1) + tiling(n-2);
		dp[n] %= 100007;
		
		return dp[n];
		
	}

}

5. ๊ฒฐ๊ณผ

์„ฑ๊ณต~

profile
๐ŸŒฑ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž๐ŸŒฑ

0๊ฐœ์˜ ๋Œ“๊ธ€