ν‹°μŠ€ν† λ¦¬ λ·°

728x90
λ°˜μ‘ν˜•

문제

 

11399번: ATM

첫째 쀄에 μ‚¬λžŒμ˜ 수 N(1 ≤ N ≤ 1,000)이 주어진닀. λ‘˜μ§Έ μ€„μ—λŠ” 각 μ‚¬λžŒμ΄ λˆμ„ μΈμΆœν•˜λŠ”λ° κ±Έλ¦¬λŠ” μ‹œκ°„ Piκ°€ 주어진닀. (1 ≤ Pi ≤ 1,000)

www.acmicpc.net

 

문제 풀이

 λˆμ„ μΈμΆœν•˜λŠ”λ° μ‹œκ°„μ΄ 짧은 μ‚¬λžŒλΆ€ν„°, μš°μ„ μ μœΌλ‘œ μ²˜λ¦¬ν•˜λŠ” 것이 λˆ„μ  μ‹œκ°„μ„ μ€„μ΄λŠ” 방법이닀. λ”°λΌμ„œ μΈμΆœν•˜λŠ”λ° κ±Έλ¦¬λŠ” μ‹œκ°„μ„ μ •λ ¬ν•œ 후에 μžμ‹ μ˜ μ°¨λ‘€ 이후에 남은 μ‚¬λžŒμ˜ 수만큼 κ³±ν•˜λ©΄ λˆ„μ  μ‹œκ°„μ„ 계산할 수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄ 1, 2, 3, 4 순으둜 λˆμ„ μΈμΆœν•œλ‹€κ³  ν•˜λ©΄ 4 + 6 + 6 + 4와 같이 총 20의 μ‹œκ°„μ΄ μ†Œλͺ¨λœλ‹€λŠ” 것을 계산할 수 μžˆλ‹€. μ΄λŠ” 뒀에 μžˆλŠ” μ‚¬λžŒμ€ μ•žμ˜ 인좜 μ‹œκ°„μ— 영ν–₯을 λ°›λŠ” 것을 λ°˜μ˜ν•œ 것이닀.

 

μ½”λ“œ

from sys import stdin

if __name__ == '__main__':
    n = int(stdin.readline())
    working_time = sorted(list(map(int, stdin.readline().split())))

    sum_time = 0
    for order, num in enumerate(working_time):
        sum_time += num * (n - order)

    print(sum_time)
728x90
λ°˜μ‘ν˜•
λŒ“κΈ€
κΈ€ 보관함
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€