🖥️ CS/Baekjoon Algorithms

#11399번 ATM (C++)

한국의 메타몽 2020. 10. 30. 16:56

링크 : www.acmicpc.net/problem/11399

 

11399번: ATM

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

www.acmicpc.net

1. 오름차순으로 정렬한다. 

2. 0, 0~1, 0~2, ... 0~N번째 합을 누적시킨다. 

 

누적시키는 방법은 2중 for문 구현도 있고, 아래처럼 DP를 사용해도 무방하다.

 

별 생각 없이 풀 수 있었던 문제였다.

 

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

using namespace std;

int main() {
	ios::sync_with_stdio(NULL);
	cin.tie(NULL);

	int n = 0, arr[1001], ans = 0;
	cin >> n; 
	for (int i = 0; i < n; i++) cin >> arr[i];
	sort(arr, arr+n);
	ans += arr[0];
	for (int i = 1; i < n; i++) {
		arr[i] = arr[i-1] + arr[i];
		ans += arr[i];
	}
	cout << ans << "\n";

	return 0;
}

'🖥️ CS > Baekjoon Algorithms' 카테고리의 다른 글

#2609번 최대공약수와 최대공배수 (C++)  (0) 2020.11.02
#1946번 신입 사원 (C++)  (0) 2020.11.01
#1931번 회의실배정 (C++)  (0) 2020.10.30
#11047번 동전 0 (C++)  (0) 2020.10.28
#2583번 영역구하기 (C++)  (0) 2020.10.20