[FESTIVAL] 문제 질문 입니다. Language : C

  • tumblbug_K
    tumblbug_K

    질문 내용

    혼자서 수정/제출을 반복하다가 더 이상 해법을 찾을 수가 없어서 질문 드립니다. edge 케이스가 있다면 어떤 것인지ㅠ 제 코드의 오류가 무엇인지 찾고 싶습니다. 하단에 코드 첨부했습니다.

    문제 링크

    FESTIVAL

    코드

    #include <stdio.h>
    
    int main() {
    
      double costs[1001] = { 0 };
      int iteration, days, teams;
      int i, j;
      double min = 100.00;
      double sum, avg;
    
      scanf("%d", &iteration);
    
      while(iteration--) {
        scanf("%d %d", &days, &teams);
    
        for(i = 0; i < days; i++) {
          scanf("%lf", &costs[i]);
        }
    
        while(teams <= days) {
    
          for(i = 0; i <= days-teams; i++) {
            sum = 0;
    
            for(j = i; j < teams + i; j++){
              sum += costs[j];
            }
    
            avg = sum / teams;
    
            if (avg < min) { min = avg;}
          }
          teams += 1;
        }
    
        printf("%0.12lf\n", min);
      }
      return 0;
    }
    

    3년 전
3개의 댓글이 있습니다.
  • keith
    keith

    ^^;;;; 아주 심플한.. 실수하셨네요..
    iteration이 돌때마다 min 값 초기화 시켜주셔야죠^^;


    3년 전 link
  • keith
    keith

    그나저나 이 알고리즘으로 시간초과 안뜨나요?^^;


    3년 전 link
  • tumblbug_K
    tumblbug_K

    @keith 하 감사합니다... 다행히도 해당 문제는 시간이 넉넉해서 통과하네요ㅠ 다른 분들 정답보고 공부를 해봐야겠어요


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