본문 바로가기
알고리즘/문제

[algospot] FESTIVAL. 록 페스티벌 (종만북) <C++>

by 코드 이야기 2021. 2. 6.
728x90

algospot.com/judge/problem/read/FESTIVAL

 

algospot.com :: FESTIVAL

록 페스티벌 문제 정보 문제 커다란 공연장을 빌려서 록 페스티벌을 개최하려고 합니다. 이 페스티벌은 여러 날 동안 진행되며, 하루에 한 팀의 밴드가 공연장에서 콘서트를 하게 됩니다. 전체

algospot.com

 

이전에 사둔 종만북을 심심할 때마다 천천히 읽어보려고 한다.

요즘 사용하고있는 kotlin언어를 사용할 수 없어 아쉬웠다. (나아아는... C++하고 kotlin밖에 모르는데에...ㅠㅠ)

 

 

문제 풀이

생각과 구현이 편한 방법을 선택했다.

 

입력을 마친 직후 (계산할  준비가 된 상태)

 

아직 L개를 더하지 못했기 때문에 계속해서 누적합을 구해준다.

 

아직 L개를 더하지 못했기 때문에 계속해서 누적합을 구해준다.

 

 

 

 

아직 L개를 더하지 못했기 때문에 계속해서 누적합을 구해준다.

 

 

.

.

.

 

이런 식으로 계속해서 해나가는 간단한 방법.

 

 

정답 코드

#include <iostream>
using namespace std;

int main() {
  int testCase;
  cin >> testCase;

  cout.setf(ios::fixed);
  cout.precision(8);
  //자릿수 고정

  while(testCase--) {
    int n, l, sum=0, cost[1001];
    double avg, minAvg=100.1;

    cin >> n >> l;
    for(int i=0; i<n; i++) cin >> cost[i];

    for(int i=0; i<n; i++) {
      sum=0; 
      for(int j=i; j<n; j++) {
        sum += cost[j];
        if(j-i >= l-1) { 			 //l개 이상 더했다면
          avg = sum*1.0/(j-i+1);		//평균을 구해준다.
          if(minAvg > avg) minAvg = avg;	//최소 평균을 구해준다.
        }
      }
    }

    cout << minAvg << endl;
  }
}

 

 

오답 노트

자릿수 고정을 해주지 않아 오답을 만들어 조금 고민했다.

 

 

 

 

 

728x90

댓글