๋ฌธ์
ํด๋น ํฌ์คํ ์ ๋ฐฑ์ค์ ๋ฌธ์ ์ด๋ฆ ์ ์ ๊ทผ๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ค๋ช ํ ๊ธ ์ ๋๋ค.
์ ๋ต ์์ค ์ฝ๋๋ฅผ ํ์ธํ์๋ ค๋ฉด solve url ์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๋ค ๋ฐฉ์์ผ๋ก ์ ๊ทผํด์ผ ํ๋์ง๋ฅผ ๋จผ์ ์๊ฐํด๋ณด์.
ํด๊ฒฐ๋ฒ
์ด๋ฒ ๋ฌธ์ ๋ DP๋ก ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ์ค ๊ฐ์ฅ ์ฌ์ดํธ์ ์ํ๋ค.
ํ์ง๋ง n์ด 90๊น์ง ๊ฐ๋ฅํ ๋ Integer์ ๋ฒ์๋ฅผ ๋๊ฒ ๋๋๋ฐ ํด๋น ๋ถ๋ถ๋ง ์ฃผ์ํ๋ฉด ๋ ๋ฏํ๋ค.
์ ๊ทผ๋ฒ
์ด์น์๊ฐ ๋ ์ ์๋ ์๋ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ด ์๋ค.
- 0์ผ๋ก ์์ํ์ง ์์ ๊ฒ ex) 0101
- 1์ด ๋ ๋ฒ ์ฐ์ ๋ฑ์ฅํ์ง ์์ ๊ฒ ex) 1101
n์ด ์์ ๋๋ ์ถฉ๋ถํ ์์ผ๋ก ๊ณ์ฐํ ์ ์์ผ๋ฏ๋ก ์ง์ ๊ณ์ฐํด๋ณด๋ฉด์ ํน์ง์ ์ฐพ์ ์ ํ์์ ๋์ถํด๋ณด์.
n = 1;
a[n] = {1}; // 1
n = 2;
a[n] = {10}; // 1
n = 3;
a[n] = {100, 101} // 2
n = 4;
a[n] = {1000, 1010, 1001} // 3;
...
์ด ๋ฌธ์ ๋ 2๊ฐ์ง ๊ฒฝ์ฐ๋ฅผ ์ฐพ์์ผ ํ๋ค.
- 0์ด ์ฌ ์ ์๋ ๊ฒฝ์ฐ
- 1์ด ์ฌ ์ ์๋ ๊ฒฝ์ฐ
0์ด ์ฌ ์ ์๋ ๊ฒฝ์ฐ
์ฐ์ n์ด ์ด์น์๊ฐ ๋๋ ค๋ฉด n-1๋ฒ์จฐ ์์ 0์ ๋ถํ๋ฉด ๋ฌด์กฐ๊ฑด ํด๋น ์๋ ์ด์น์๊ฐ ๋๋ค.
1์ด ์ฌ ์ ์๋ ๊ฒฝ์ฐ
์ด์ 1์ด ์ฌ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์์ผ ํ๋๋ฐ, n๋ณด๋ค ์์ ์์ 1์ ๋ฐ๋ก ๋ถ์ผ ์ ์๋ค.
์๋? ๋ง์ฝ 1์ด ํผ์ ์๋ค๊ฐ ์์ ์๊ฐ 1์ด๋ผ๋ฉด 11์ด ๋๋ฏ๋ก ์ด์น์์ ํด๋นํ์ง ์๋๋ค.
๊ทธ๋์ 1์ด ์ค๊ธฐ ์ํด์๋ 01์ด ์์ผ ํ๋ค.
๊ทธ๋ผ 01์ด๋ผ๋ ์๊ฐ ๋ถ์ผ๋ ค๋ฉด n-2 ๋ฒ์งธ ์์์ ๋ถ์ด์ผ ํ๋ฏ๋ก n-2๋ฒ์งธ์ n-1๋ฒ์จฐ ์๋ฅผ ๋ํด์ฃผ๋ฉด ๋๋ค.
์ค๋ต ํ๋ณด
์ด๋ฒ ๋ฌธ์ ์ ์ ๋ต๋ฅ ์ 30ํผ์ผํธ์ด๋ค.
์๋ง ์ด๋ฒ ๋ฌธ์ ์์ ๋ง์ด ํ๋ ธ์ ์ด์ ๊ฐ n์ด ๊ณ์ ์ฆ๊ฐํ๋ค Integer์ ๋ฒ์๋ณด๋ค ๋ ํฐ ์๋ฅผ ์ ์ฅํด์ผํ ๋ ์ ์ ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ๋ค.
๊ทธ๋์ ์ถ๋ ฅ ์๋ฃํ์ long์ผ๋ก ๋ณ๊ฒฝํด์ผ ํ๋ค.
์ ๋ต ์ฝ๋
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
long[] dp = new long[91]; // n ์๋ฆฌ์ ์ด์น์ ๊ฐฏ์
dp[0] = 0;
dp[1] = dp[2] = 1;
dp[3] = 2;
for (int i = 4; i <= n; i++) {
dp[i] = dp[i-1] + dp[i-2];
}
bw.write(String.valueOf(dp[n]));
bw.flush();
bw.close();
}
}
๋ฌธ์ ํ๊ณ
๋ฌธ์ ๋ฅผ ํ ๋ ์ฒ์๋ถํฐ ๋ฌดํฑ๋๊ณ ๋ค์ด๊ฐ๋ ์ต๊ด์ ์กฐ๊ธ ์ ๊ฒฝ์ฐ๊ธฐ ์์ํ๋ค.
๋ง์ฝ ์ด๋ฒ ๋ฌธ์ ๋ ์ด๋ป๊ฒ ํด๊ฒฐํ ์ง ์์๋ค๊ณ ํด์ ๋ฌดํฑ๋๊ณ ๋ค์ด๊ฐ๋๋ผ๋ฉด, long ์๋ฃํ์ ์จ์ผํ๋ค๋ ๊ฒ๋ ๋ชจ๋ฅด๊ณ ํ ๋ฒ์ ํต๊ณผํ๊ธฐ๋ ํ๋ค์์ ๊ฒ์ด๋ค.
ํด๋น ๋ฌธ์ ๋ ์๋ ๊ต๋ด ์ํํธ์จ์ด ๊ฒฝ์ง ๋ํ์์ ๋ง๋ฌ๋ ๋ฌธ์ ์ธ๋ฐ, ๊ฒฐ๊ตญ ํ์ง ๋ชปํ๋ ๊ธฐ์ต์ด ์๋ค.
๊ทธ ๋ ๋น์์๋ ์.. ์ด๊ฑด ์ฒ์ฌ๋ง ํ์ด ํ๋ ๋ฌธ์ ์๋๋ฐ DP๋ฅผ ์๊ณ ๋ณด๋ ์ ๋ง ๊ฐ๋จํ ๋ฌธ์ ์๋ค๋ ๊ฒ์ ์กฐ๊ธ ํ๋ฌดํ๋ค ใ ใ ..
๋๊ธ