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

miinsun

[BAEKJOON] ๋ฐฑ์ค€ DP 9461 :: ํŒŒ๋„๋ฐ˜ ์ˆ˜์—ด JAVA ๋ณธ๋ฌธ

Algorithm/Baekjoon

[BAEKJOON] ๋ฐฑ์ค€ DP 9461 :: ํŒŒ๋„๋ฐ˜ ์ˆ˜์—ด JAVA

miinsun 2022. 3. 24. 19:05

 

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

์˜ค๋ฅธ์ชฝ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์‚ผ๊ฐํ˜•์ด ๋‚˜์„  ๋ชจ์–‘์œผ๋กœ ๋†“์—ฌ์ ธ ์žˆ๋‹ค. ์ฒซ ์‚ผ๊ฐํ˜•์€ ์ •์‚ผ๊ฐํ˜•์œผ๋กœ ๋ณ€์˜ ๊ธธ์ด๋Š” 1์ด๋‹ค.

๊ทธ ๋‹ค์Œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์œผ๋กœ ์ •์‚ผ๊ฐํ˜•์„ ๊ณ„์† ์ถ”๊ฐ€ํ•œ๋‹ค.
๋‚˜์„ ์—์„œ ๊ฐ€์žฅ ๊ธด ๋ณ€์˜ ๊ธธ์ด๋ฅผ k๋ผ ํ–ˆ์„ ๋•Œ, ๊ทธ ๋ณ€์— ๊ธธ์ด๊ฐ€ k์ธ ์ •์‚ผ๊ฐํ˜•์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
ํŒŒ๋„๋ฐ˜ ์ˆ˜์—ด P(N)์€ ๋‚˜์„ ์— ์žˆ๋Š” ์ •์‚ผ๊ฐํ˜•์˜ ๋ณ€์˜ ๊ธธ์ด์ด๋‹ค.

P(1)๋ถ€ํ„ฐ P(10)๊นŒ์ง€ ์ฒซ 10๊ฐœ ์ˆซ์ž๋Š” 1, 1, 1, 2, 2, 3, 4, 5, 7, 9์ด๋‹ค. N์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, P(N)์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

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

์ž…๋ ฅ 

  • ์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.
  • ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ•œ ์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , N์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 100) 

 

์ถœ๋ ฅ

  • ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค P(N)์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

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

2
6
12

 

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

3
16

โ€‹

 

๐Ÿ’ป  Main.java

  • dy[i]์— bottom-up ๋ฐฐ์—ด ์ˆœ์œผ๋กœ ์ €์žฅํ•œ๋‹ค.
  • ์ ํ™”์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด dy[i] = dy[i - 3] + dy[i - 2] ์ด๋‹ค.
/* ๋ฐฑ์ค€ DP - 9461 :: ํŒŒ๋„๋ฐ˜ ์ˆ˜์—ด */
import java.util.*;
public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int t = sc.nextInt();

		for(int i = 0; i < t; i++) {
			int n = sc.nextInt();
			long [] dy = new long[n + 1];
			dy[1] = 1;
			
			if(n > 1) {
				dy[2] = 1;
				for(int j = 3; j <= n; j++) {
					dy[j] = dy[j - 3] + dy[j - 2];
				}
			}
			System.out.println(dy[n]);
		}
		
		sc.close();
	}
}
Comments