• 문제 링크
17291번: 새끼치기
실험실에서 새로운 종의 벌레 한 마리가 탄생하였다. 벌레는 스스로 분열하며, 분열하면 자기 자신과 같은 벌레를 한 마리 만들어 내게 된다. 벌레가 분열하는 규칙은 다음과 같다. 벌레는 기준
www.acmicpc.net
• 풀이 코드
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = read();
int[] dp = new int[n + 1];
dp[0] = dp[1] = 1;
for (int i = 2; i <= n; i++) {
dp[i] = dp[i - 1] * 2;
if (i % 2 == 0) dp[i] -= (i - 4 > -1 ? dp[i - 4] : 0) + (i - 5 > -1 ? dp[i - 5] : 0);
}
bw.write(String.valueOf(dp[n]));
bw.flush();
}
private static int read() throws IOException {
int c, n = System.in.read() & 15;
while ((c = System.in.read()) > 32) n = (n << 3) + (n << 1) + (c & 15);
return n;
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 20152 Game Addiction - Dynamic Programming / Java (0) | 2023.09.30 |
---|---|
[백준] 17202 핸드폰 번호 궁합 - Dynamic Programming / Java (0) | 2023.09.29 |
[백준] 4172 sqrt log sin - Dynamic Programming / Java (0) | 2023.09.27 |
[백준] 22971 증가하는 부분 수열의 개수 - Dynamic Programming / Java (0) | 2023.09.26 |
[백준] 17216 가장 큰 감소 부분 수열 - Dynamic Programming / Java (0) | 2023.09.25 |
댓글