티스토리 뷰
1. 문제
https://www.acmicpc.net/problem/11727
2. 설명
하나씩 해보면서 규칙찾아서 풀었다.
짝수일 때는 그 전의 dp 2배에 +1을 해주어야 했고,
홀수일 때는 전의 dp 2배에 -1을 해주어야 했다.
규칙만 찾으면 쉽게 풀 수 있는 문제
3. 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int[] dp = new int[1001];
int mod = 10007;
dp[1] = 1;
for(int i=2; i<=n; i++) {
if(i%2==0) // 짝수면 +1
dp[i] = (dp[i-1] * 2 + 1) % mod;
else // 홀수면 -1
dp[i] = (dp[i-1] * 2 - 1) % mod;
}
System.out.println(dp[n]);
}
}
'알고리즘 풀이 > 백준' 카테고리의 다른 글
백준 2217 로프 JAVA (0) | 2020.07.29 |
---|---|
백준 9461 파도반 수열 JAVA (DP) (0) | 2020.07.20 |
백준 10844 쉬운 계단 수 JAVA (DP) (0) | 2020.07.11 |
백준 1912 연속합 JAVA (DP) (0) | 2020.07.08 |
백준 2156 포도주 시식 JAVA (DP) (0) | 2020.07.07 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday