11399 ATM _python

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

     

    11399번: ATM

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

    www.acmicpc.net

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    문제 접근

    더한 합이 최소가 되려면 가장 작은 값부터 순서대로 더하는 것이 좋다.

    그래서 입력받은 P를 정렬을 해주고, 정렬된 배열을 누적합을 구하면 된다.

    그리고 누적합의 값을 모두 더하면 끝

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    코드

    import sys
    input = sys.stdin.readline
    
    """
    누적합 배열만들고 다 더하기
    
    """
    
    N = int(input())
    P = list(map(int,input().split()))
    P.sort()
    for i in range(1, len(P)):
        P[i] += P[i-1]
    
    print(sum(P))

    '백준 > 문제풀이_python' 카테고리의 다른 글

    12865 평범한 배낭 _python  (0) 2022.12.14
    11047 동전0 _python  (0) 2022.12.12
    4195 친구 네트워크 _python  (1) 2022.12.11
    1976 여행 가자 _pyth  (0) 2022.12.10
    1717 집합의 표현 _python  (0) 2022.12.10

    댓글