삐까냥의 파도타기
9095번) 1, 2, 3 더하기 본문
문제 출처 : https://www.acmicpc.net/problem/9095
import java.util.Scanner; public class Main {
static int[] arrayValue; public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); int input = scanner.nextInt(); int[] array = new int[input]; int max = 0;
//입력한 값을 차례대로 넣는다. for ( int i = 0; i < input; i++ ) { int temp = scanner.nextInt(); array[i] = temp;
//입력한 값 중 최대 값을 찾는다. max = max > temp ? max : temp; } scanner.close();
//최대값 만큼 계산을 미리 수행한다.(딱 한번) setArrayValue(max);
//이미 계산돼있기 때문에 계산된 값을 출력만 하면 된다. for ( int i = 0; i < array.length; i++ ) { System.out.println(arrayValue[array[i]]); } }
static void setArrayValue(int max) { arrayValue = new int[max+1];
if ( max > 0 ) { arrayValue[1] = 1; } if ( max > 1 ) { arrayValue[2] = 2; } if ( max > 2 ) { arrayValue[3] = 4; } if ( max > 3 ) { for (int i = 4; i < max + 1; i++ ) { arrayValue[i] = arrayValue[i - 3] + arrayValue[i - 2] + arrayValue[i - 1]; } } } } |
다이나믹 프로그래밍 규칙찾기가 넘나...
'코딩 > 백준 알고리즘' 카테고리의 다른 글
11726번) 2×n 타일링 (0) | 2017.10.09 |
---|---|
1932번) 숫자삼각형 (0) | 2017.10.03 |
2579번) 계단 오르기 (0) | 2017.10.03 |
1149번) RGB거리 (0) | 2017.10.02 |
1463번) 1로 만들기 (0) | 2017.10.02 |