알고스팟 : 록 페스티벌

dldzm·2021년 1월 22일
0

알고리즘 공부

목록 보기
2/42

링크 : https://algospot.com/judge/problem/read/FESTIVAL

간만에 vector을 이용해봤다. 자료구조 공부했을 때, 교수님이 벡터 못쓰게해서 매우 힘들었는데 지금 쓰니까 겁나 편하다.

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int main() {
	int testcase, possible, already, num;
	cin >> testcase;

	vector<double> result;

	for (int i = 0; i < testcase; i++) {
		cin >> possible >> already;
		vector<int> vec;
		//비용값 벡터에 넣기

		for (int j = 0; j < possible; j++) {
			cin >> num;
			vec.push_back(num);
		}


		//최소 비용 찾아내기
		double sum = 0;
		double minsum = 100;
		//몇 날을 탐색할 것인지
		for (int day = already; day < possible; day++) {
			//총 몇번 탐색이 되는지
			for (int iter = 0; iter < possible-day+1; iter++) {
				//cost값 더하기
				for (int idx = iter; idx < iter + day; idx++) {
					sum += vec[idx];
				}
				minsum = min(minsum, (double)(sum/day));
				sum = 0;
			}
		}
		result.push_back(minsum);
	}
	cout << fixed;
	cout.precision(10);
	for (int i = 0; i < testcase; i++)
		cout << result.at(i) << endl;

}

소수점 몇번째 자리까지 나오게 하기 위해서 precision을 사용하였다.

cout << fixed;
cout.precision(10);

이렇게 설정하니까 아래의 for문에서는 모두 소수점 10번째자리까지 잘 나왔다. 참고 : https://atomic0x90.github.io/c++/2020/02/10/c++-decimal-place.html

profile
🛰️ 2021 fall ~

0개의 댓글