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;

int main(void)
{
    int n;
    cin >> n;
    vector<int> v(n, 0);
    for(int i = 0 ; i < n ; i++)
    {
        cin >> v[i];
    }
    sort(v.begin(), v.end());
    int ans = 0, temp = 0;
    for(int i = 0 ; i < n ; i++)
    {
        // 해당 순서의 사람이 걸리는 시간
        temp += v[i];
        // 그 사람이 걸린 시간을 전체합에 더해줌
        ans += temp;
    }
    cout << ans;
}

 

[Approach]

1. 각각을 페어로 만들어서 저장하고(맵을 쓰든 벡터를 쓰든) 시간순에 따라 정렬하면 될 것 같다.

     -> 생각해보니 굳이 페어로 만들 것도 없이 시간만 저장해서 구하면 될 듯

 

[Point]

1. 이것도 왜 실버냐...

'PS > BOJ' 카테고리의 다른 글

[백준] 1260.cpp : DFS 와 BFS  (0) 2020.07.02
[백준] 1012.cpp : 유기농 배추  (0) 2020.07.02
[백준] 9461.cpp : 파도반 수열  (0) 2020.07.02
[백준] 9375.cpp : 패션왕 신해빈  (0) 2020.07.02
[백준] 9095.cpp : 1, 2, 3 더하기  (0) 2020.07.01

+ Recent posts