반응형
문제
잠깐만
참고로, 결과 값은 10007로 나눈 값입니다
코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int target = Integer.parseInt(st.nextToken());
int[] results = new int[target+1];
results[0] = 1;
results[1] = 1;
for (int i = 2; i <= target; i++) {
results[i] = (results[i-1] + results[i-2])%10007;
}
System.out.println(results[target]);
}
}
설명
이 문제 또한 이전 문제들과 같이 더하면서 나아가는 로직입니다.
results[k]는 results[k-1]의 모양들 마지막에 1*2 블록을 추가하고,
results[k-2]의 모양들 마지막에 2*2블록 2개를 추가한 모양이에요.
따라서 results[k]는 results[k-1] + results[k-2]입니다.
회고
회고는 없습니다 ㅠㅜ
반응형
'코딩 테스트 > 백준(java)' 카테고리의 다른 글
DP - 2579. 계단 오르기 (0) | 2021.03.27 |
---|---|
DP - 1149. RGB거리 (0) | 2021.03.27 |
DP - 1003. 피보나치 함수 (0) | 2021.03.25 |
DP - 9095. 1, 2, 3 더하기 (0) | 2021.03.25 |
DP - 1463. 1로 만들기 (0) | 2021.03.25 |