DOTY

2) 백준 11399 - ATM 본문

Algorithm/Greedy

2) 백준 11399 - ATM

증식세포 2020. 10. 8. 17:50
728x90
반응형

<문제>

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

 

11399번: ATM

첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)

www.acmicpc.net

솔직히 이렇게 해도 되나..? 하면서 푼 문제다. 근데 맞았다. 기분이 좋다. 깔깔깔

 

<코드>

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

bool des(int a, int b) {
	return a > b;
}

int main(void) {
	vector<int> v;
	int N, a;
	cin >> N;
	
	for(int i = 0; i < N; i++) {
		cin >> a;
		v.push_back(a);
	}
	
	sort(v.begin(), v.end(), des);
	int sum = 0;
	
	for(int i = 0; i < N; i++) {
		sum += v[i]*(i+1);
	}
	
	cout << sum;
	
	return 0;	
}

방법은 이러하다.

vector v를 새로 만들어주고, Pi들을 차례대로 넣어준다.

후에 v를 내림차순으로 정렬한다.

index에 해당하는 값과 index+1을 곱한 값을 계속해서 더해주면 끝이다.

 

이런 방법이 생각난 이유는 시간을 최대한 줄이려면 기다리는 시간을 최대한 줄여야하지 않을까...? 싶었다.

그렇기 때문에 내림차순으로 정렬을 해주었다.

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

또잉...? 

728x90
반응형

'Algorithm > Greedy' 카테고리의 다른 글

6) 백준 1541 - 잃어버린 괄호  (0) 2020.10.08
5) 백준 2217 - 로프  (0) 2020.10.08
4) 백준 5585 - 거스름돈  (0) 2020.10.08
3) 백준 1931 - 회의실 배정  (0) 2020.10.08
1) 백준 2839 - 설탕 배달  (0) 2020.10.08
Comments