본문 바로가기
코딩테스트_백준풀이

로프 #2217 c++ 풀이

by wanna_dev 2023. 11. 22.

https://www.acmicpc.net/problem/2217

 

2217번: 로프

N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하

www.acmicpc.net

아직 그리디라는 것이 와닿지는 않지만 문제를 풀어보는 중이다.

보자마자 음.. 최소값에 개수를 곱하면 가장크지 않을까? 라는 생각이 들었고, 그렇게 코딩해서 1틀림

그리고 생각해보니까 sort한 v[i]번째값에 n-i 개를 곱한 것도 비교해야 한다는 것을 알았다.

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

int main() {
	int n;
	vector<int>v;
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		int temp;
		cin >> temp;
		v.push_back(temp);
	}
	sort(v.begin(), v.end());
	int ma=v[0]*n;

	for (int i = 0; i < v.size(); i++) {
		ma = max(ma, v[i]*(n-i));
	}
	
	cout <<ma  << endl;
}

'코딩테스트_백준풀이' 카테고리의 다른 글

센서 #2212 c++ 풀이  (0) 2023.11.24
강의실 배정 #11000  (1) 2023.11.23
행렬 #1080 c++ 풀이  (0) 2023.11.22
신입사원 #1946 c++ 풀이  (2) 2023.11.22
잃어버린 괄호 #1541 c++ 문제풀이  (0) 2023.11.22