안녕하세요. 이제 막 알고리즘 공부를 시작한 사람입니다. java로 FESTIVAL 문제를 풀어보았는데 RTE에러가 계속 나와서요...ㅠㅠ 주석을 달아서 각 소스 설명하였습니다.
package RockFestival;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
int TC;
Scanner sc = new Scanner(System.in);
TC = sc.nextInt();
for(int i=0;i<TC;i++){
int day, team;
double min;
day = sc.nextInt();
team = sc.nextInt();
double [] total = new double[day-team+1];//각 경우의 수에 따른 날짜별 비용의 합
double [] avg = new double[day-team+1];//각 경우의 수에 따른 총합의 평균
int [] cost = new int [day];//각 날짜의 비용
for(int c=0;c<day;c++){
cost[c] = sc.nextInt();
}
/* 날짜만큼 비용을 더해 총합을 구하고, 비용의 총합을 날 수(team+k)만큼 나누어 평균을 구한다.
* team+k가 중요한대, 예를 들어서 총 날짜가 6일(day)이고, 정해진 팀(team)이 3인경우에는
* 3일, 4일, 5일, 6일을 빌리는 경우의 평균비용을 구하여 비교해봐야한다. 이 3,4,5,6은
* 3+0, 3+1, 3+2, 3+3으로 표현될 수 있으며, (총 날짜-정해진 팀의수)+1 : (day-team)+1 만큼 반복해서 구해봐야한다.
*/
for(int k=0;k<(day-team)+1;k++){
//각 경우에 해당하는 총 비용의 합과 평균을 계산하는 반복문
for(int j=0;j<team+k;j++){
total[k] += cost[j];
avg[k] = total[k]/(team+k);
}
}
//각 경우의 수의 평균 중 비용이 가장 저렴한 것을 찾는 배열 내 최소값을 찾는 알고리즘
min = avg[0];
for(int m=0;m<avg.length;m++){
if(min > avg[m]){
min = avg[m];
}
}
System.out.println(min);
}
}
Janus19
안녕하세요. 이제 막 알고리즘 공부를 시작한 사람입니다. java로 FESTIVAL 문제를 풀어보았는데 RTE에러가 계속 나와서요...ㅠㅠ 주석을 달아서 각 소스 설명하였습니다.
package RockFestival;
import java.util.Scanner;
public class Main {
}
8년 전