FESTIVAL 문제 질문입니다

  • comebackhome
    comebackhome

    FESTIVAL 문제 오답이 나오는데 이유를 모르겠습니다..
    FESTIVAL

    이래저래 바꿔봐도 마찬가지인데... 조언 부탁드리겠습니다..
    알고리즘이 틀린 것 같기도 한데...
    영 찾지를 못하겠네요.. ㅠㅠ

    import java.util.*;
    public class Main {
    
    
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
    
            for (int i=0; i<n; i++) {
                int days = sc.nextInt();
                int team = sc.nextInt();
                int[] price = new int[days];
                for (int j=0; j<days; j++) {
                    price[j] = sc.nextInt();
                }
                double sum = 0.0;
                double avg = 0.0;
    
                double minAvg = 0;
                double recentSlideSum = 0;
                int begin = 0;
                for (int k=0; k<team; k++) {
                    sum+=price[k];
                }
                begin = 0;
    
                avg = sum/team;
                recentSlideSum = sum;
                minAvg = avg;
    
                for (int k=team; k<days; k++) {
                    recentSlideSum -= price[k-team];
                    recentSlideSum += price[k];
                    double recentAvg = recentSlideSum/team;
    
                    sum += price[k];
                    avg = sum / (k-begin+1);
                    if (avg < recentAvg) {
    
                    } else {
                        begin=k-team+1;
                        avg = recentAvg;
                        sum = recentSlideSum;
                    }
    
                    if (avg < minAvg) minAvg = avg;
    
    
                }
                System.out.format("%.11f%n", minAvg); 
            }
        }
    }
    

    10년 전
2개의 댓글이 있습니다.
  • JongMan
    JongMan

    아주 단순하고 100% 맞는 알고리즘을 작성해서 랜덤 입력에 대해 두 결과를 비교해 보는 방법을 추천합니다.


    10년 전 link
  • comebackhome
    comebackhome

    감사합니다~ 말씀하신 대로 해서 찾았습니다.. :)


    10년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.