삐까냥의 파도타기

Q9465. 스티커 본문

코딩/백준 알고리즘

Q9465. 스티커

금손형아 2019. 2. 10. 22:34

최대 값을 저장하며 나아가는 로직.


array[0][2] 가 선택할 수 있는 스티커의 위치는 array[1][0]와 array[1][1]이며, 두 스티커를 선택할 경우의 저장된 최대값을 선택한다.

array[1][2] 가 선택할 수 있는 스티커의 위치는 array[0][0]와 array[0][1]이며, 두 스티커를 선택할 경우의 저장된 최대값을 선택한다.





import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.util.StringTokenizer;


public class Q9465 {


static int[][] array;

static int[][] values;

public static void main(String[] args) throws Exception {

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

StringTokenizer st = new StringTokenizer(br.readLine());

int testCase = Integer.valueOf(st.nextToken());

for (int t = 1; t <= testCase; t++) {

st = new StringTokenizer(br.readLine());

int num = Integer.valueOf(st.nextToken());

array = new int[2][num+1];

values = new int[2][num+1];

for (int i = 0; i < 2; i++) {

st = new StringTokenizer(br.readLine());

for (int j = 1; j <= num; j++) {

array[i][j] = Integer.valueOf(st.nextToken());

}

}

values[0][1] = array[0][1];

values[1][1] = array[1][1];

for (int i = 2; i <= num; i++) {

values[0][i] = values[1][i-2] > values[1][i-1] ? values[1][i-2] : values[1][i-1];

values[0][i] += array[0][i];

values[1][i] = values[0][i-2] > values[0][i-1] ? values[0][i-2] : values[0][i-1];

values[1][i] += array[1][i];

}

System.out.println(values[0][num] > values[1][num] ? values[0][num] : values[1][num]);

}

}


'코딩 > 백준 알고리즘' 카테고리의 다른 글

Q11057. 오르막 수  (0) 2019.02.10
Q9461. 파도반 수열  (0) 2019.02.10
Q2163. 초콜릿 자르기  (0) 2019.02.10
Q1010. 다리놓기  (0) 2019.02.10
Q11053. 가장 긴 증가하는 부분 수열  (0) 2019.02.10