Recent Posts
Recent Comments
«   2024/05   »
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
관리 메뉴

Dev.

백준 9095번: 1, 2, 3 더하기 [Java/Kotlin] 본문

Algorithm/백준 알고리즘

백준 9095번: 1, 2, 3 더하기 [Java/Kotlin]

Pppdw 2019. 11. 12. 18:16

백준 9095번 1, 2, 3 더하기 

//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개를 미리 만들고 시작하는 부분을 입력받은 값의 최대 값으로 만들어 시작하는 정도가 될 것 같다.

 

 

 

Comments