티스토리 뷰

algorithm

[DP] 2011

tonirr 2020. 5. 5. 02:52
public class Main {
	static long dp[];
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in); 
		String str = sc.next();
		sc.close();
	
		int length = str.length();
		dp = new long[length + 1];
		dp[0] = dp[1] = 1;		

		if(str.charAt(0) == '0') 
			System.out.println(0);
		else if(str.charAt(length-1) == '0' && str.charAt(length-2) != '1' && str.charAt(length-2) != '2')
			System.out.println(0);
		else
			for(int i = 2; i <= length; i++) {
				int tmp = Integer.parseInt(str.charAt(i-1)+"");
				if(tmp > 0) dp[i] = dp[i-1] % 1000000;
					tmp += Integer.parseInt(str.charAt(i-2)+"")*10;
					
				if(10 <= tmp && tmp <= 26) 
					dp[i] = (dp[i] + dp[i-2]) % 1000000; 
			}
			System.out.println(dp[length]);
	}
}

 

'algorithm' 카테고리의 다른 글

[DP] 11052 카드 구매하기  (0) 2020.05.05
다이나믹 프로그래밍 문제 정리  (0) 2020.05.05
[DP] 9461 파도반수열  (0) 2020.05.01
[DP] 2133 3*n 타일링문제  (0) 2020.05.01
[dp] 1699  (0) 2020.04.28
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함