The Way
백준 11399번: ATM 본문
백준 온라인 저지(BOJ) 11399번 문제
https://www.acmicpc.net/problem/11399
1. 문제 요약
ATM 1대와 그를 이용하려는 N명의 사람이 있다.
사람들 각각의 사용시간이 주어질 때, ATM을 이용하는 순서에 따라 소요시간의 합이 달라지게 된다.
소요시간의 합의 최솟값을 구하여라.
2. 알고리즘
만약 3명이라고 치자.
처음 사용하는 사람은 a분, 두번째는 b분, 세번째는 c분 소요된다고 했을 때
총 소요시간은 $(a) + (a+b) + (a+b+c) = 3a + 2b + c$이다.
앞의 상수 3, 2, 1...은 고정이므로 곱해지는 숫자인 a, b, c가 내림차순이어야 최소가 된다.
짜기 귀찮아서 걍 algorithm에 있는 sorting 씀
3. 코드
#include <iostream> #include <algorithm> int main() { int N; scanf("%d", &N); int* arr = new int[N]; for (int i = 0; i < N; ++i) { scanf("%d", arr + i); } std::sort(arr, arr + N); int time = 0; for (int i = 0; i < N; ++i) time += (N - i) * arr[i]; printf("%d\n", time); delete[] arr; return 0; }
'PS > 백준 온라인 저지' 카테고리의 다른 글
백준 2178번: 미로 탐색 (0) | 2017.12.07 |
---|---|
백준 11722번: 가장 긴 감소하는 부분 수열 (0) | 2017.11.28 |
백준 1009번: 분산처리 (0) | 2017.10.23 |
백준 2444번: 별찍기 - 7 (0) | 2017.08.26 |
백준 2443번: 별찍기 - 6 (0) | 2017.08.26 |
Comments