Dev.
백준 9095번: 1, 2, 3 더하기 [Java/Kotlin] 본문
//in java
public void calculate(int[] val) {
int arr[] = new int[12];
arr[0] = 0;
arr[1] = 1;
arr[2] = 2;
arr[3] = 4;
for(int i=4; i<arr.length; i++) {
arr[i] = arr[i-1] + arr[i-2] + arr[i-3];
}
for(int i : val) {
System.out.println(arr[i]);
}
}
//in Kotlin
fun calculate(val_: IntArray) {
val arr = IntArray(12)
arr[0] = 0
arr[1] = 1
arr[2] = 2
arr[3] = 4
for (i in 4 until arr.size) {
arr[i] = arr[i - 1] + arr[i - 2] + arr[i - 3]
}
for (i in val_) {
println(arr[i])
}
}
간단히 손 으로 계산해보면,
1 ->1, 2->2, 3->4의 경우를 갖는 것을 알 수 있다.
4는 예시에도 나와 있듯이 7의 경우를 갖는다.
5는 13의 경우를 갖으며, 6은 24의 경우를 갖는다.
이는
i가 현재 계산해야 할 수 라면 i > 3 일 때
점화식 A[i] = A[i-3] + A[i-2] + A[i-1] 을 만족하게 된다.
내 수준에서 더 보완하자면, 저장해야 할 값 배열을 12개를 미리 만들고 시작하는 부분을 입력받은 값의 최대 값으로 만들어 시작하는 정도가 될 것 같다.
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
백준 11726번: 2xn 타일링 (0) | 2019.11.18 |
---|---|
백준 1003번: 피보나치 함수 (0) | 2019.11.18 |
백준 1463번: 1로 만들기 [Java/Kotlin] (0) | 2019.11.08 |
Comments