삐까냥의 파도타기

Q1495. 기타리스트 본문

코딩/백준 알고리즘

Q1495. 기타리스트

금손형아 2019. 2. 27. 00:47

볼륨을 저장하며 나아가는 로직

알고리즘이 필요 없네요.


import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.util.StringTokenizer;


public class Q1495 {


static boolean[][] dp;

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

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

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

int musicNum = Integer.parseInt(st.nextToken());

int startVolume = Integer.parseInt(st.nextToken());

int maxVolume = Integer.parseInt(st.nextToken());

dp = new boolean[101][1001];

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

dp[0][startVolume] = true;

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

int controlVolume = Integer.parseInt(st.nextToken());

for (int j = 0; j <= maxVolume; j++) {

if (dp[i][j]) {

int plusVolume = j + controlVolume;

int minusVolume = j - controlVolume;

if (plusVolume <= maxVolume) {

dp[i+1][plusVolume] = true;

}

if (minusVolume >= 0) {

dp[i+1][minusVolume] = true;

}

}

}

}

int result = -1;

for (int i = maxVolume; i >= 0; i--) {

if (dp[musicNum][i]) {

result = i;

break;

}

}

System.out.println(result);

}


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

Q2240. 자두나무  (0) 2019.03.02
Q2294. 동전 2  (0) 2019.03.01
Q2302. 극장 좌석  (0) 2019.02.25
Q5557. 1학년  (0) 2019.02.25
Q10164. 격자상의 격로  (0) 2019.02.24