ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] λ°±μ€€ - 11399 ATM
    __Python/__Algorithm 2022. 1. 7. 18:12

     

      λ¬Έμ œ

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

     

    πŸ”Ή λ¬Έμ œ

    μΈν•˜μ€ν–‰μ—λŠ” ATM이 1λŒ€λ°–μ— μ—†λ‹€. μ§€κΈˆ 이 ATMμ•žμ— Nλͺ…μ˜ μ‚¬λžŒλ“€μ΄ 쀄을 μ„œμžˆλ‹€. μ‚¬λžŒμ€ 1λ²ˆλΆ€ν„° Nλ²ˆκΉŒμ§€ λ²ˆν˜Έκ°€ 맀겨져 있으며, i번 μ‚¬λžŒμ΄ λˆμ„ μΈμΆœν•˜λŠ”λ° κ±Έλ¦¬λŠ” μ‹œκ°„μ€ Pi뢄이닀.

    μ‚¬λžŒλ“€μ΄ 쀄을 μ„œλŠ” μˆœμ„œμ— λ”°λΌμ„œ, λˆμ„ μΈμΆœν•˜λŠ”λ° ν•„μš”ν•œ μ‹œκ°„μ˜ 합이 λ‹¬λΌμ§€κ²Œ λœλ‹€. 예λ₯Ό λ“€μ–΄, 총 5λͺ…이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우λ₯Ό μƒκ°ν•΄λ³΄μž. [1, 2, 3, 4, 5] μˆœμ„œλ‘œ 쀄을 μ„ λ‹€λ©΄, 1번 μ‚¬λžŒμ€ 3λΆ„λ§Œμ— λˆμ„ 뽑을 수 μžˆλ‹€. 2번 μ‚¬λžŒμ€ 1번 μ‚¬λžŒμ΄ λˆμ„ 뽑을 λ•Œ κΉŒμ§€ κΈ°λ‹€λ €μ•Ό ν•˜κΈ° λ•Œλ¬Έμ—, 3+1 = 4뢄이 걸리게 λœλ‹€. 3번 μ‚¬λžŒμ€ 1번, 2번 μ‚¬λžŒμ΄ λˆμ„ 뽑을 λ•ŒκΉŒμ§€ κΈ°λ‹€λ €μ•Ό ν•˜κΈ° λ•Œλ¬Έμ—, 총 3+1+4 = 8뢄이 ν•„μš”ν•˜κ²Œ λœλ‹€. 4번 μ‚¬λžŒμ€ 3+1+4+3 = 11λΆ„, 5번 μ‚¬λžŒμ€ 3+1+4+3+2 = 13뢄이 걸리게 λœλ‹€. 이 κ²½μš°μ— 각 μ‚¬λžŒμ΄ λˆμ„ μΈμΆœν•˜λŠ”λ° ν•„μš”ν•œ μ‹œκ°„μ˜ 합은 3+4+8+11+13 = 39뢄이 λœλ‹€.

    쀄을 [2, 5, 1, 4, 3] μˆœμ„œλ‘œ 쀄을 μ„œλ©΄, 2번 μ‚¬λžŒμ€ 1λΆ„λ§Œμ—, 5번 μ‚¬λžŒμ€ 1+2 = 3λΆ„, 1번 μ‚¬λžŒμ€ 1+2+3 = 6λΆ„, 4번 μ‚¬λžŒμ€ 1+2+3+3 = 9λΆ„, 3번 μ‚¬λžŒμ€ 1+2+3+3+4 = 13뢄이 걸리게 λœλ‹€. 각 μ‚¬λžŒμ΄ λˆμ„ μΈμΆœν•˜λŠ”λ° ν•„μš”ν•œ μ‹œκ°„μ˜ 합은 1+3+6+9+13 = 32뢄이닀. 이 방법보닀 더 ν•„μš”ν•œ μ‹œκ°„μ˜ 합을 μ΅œμ†Œλ‘œ λ§Œλ“€ μˆ˜λŠ” μ—†λ‹€.

    쀄을 μ„œ μžˆλŠ” μ‚¬λžŒμ˜ 수 Nκ³Ό 각 μ‚¬λžŒμ΄ λˆμ„ μΈμΆœν•˜λŠ”λ° κ±Έλ¦¬λŠ” μ‹œκ°„ Piκ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, 각 μ‚¬λžŒμ΄ λˆμ„ μΈμΆœν•˜λŠ”λ° ν•„μš”ν•œ μ‹œκ°„μ˜ ν•©μ˜ μ΅œμ†Ÿκ°’μ„ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

     

    πŸ”Ή μž…λ ₯

    첫째 μ€„에 μ‚¬λžŒμ˜ μˆ˜ N(1 ≤ N ≤ 1,000)이 μ£Όμ–΄μ§„λ‹€. λ‘˜μ§Έ μ€„μ—λŠ” κ° μ‚¬λžŒμ΄ λˆμ„ μΈμΆœν•˜λŠ”데 κ±Έλ¦¬λŠ” μ‹œκ°„ Piκ°€ μ£Όμ–΄μ§„λ‹€. (1 ≤ Pi ≤ 1,000)

     

    πŸ”Ή μΆœλ ₯

    첫째 μ€„에 κ° μ‚¬λžŒμ΄ λˆμ„ μΈμΆœν•˜λŠ”데 ν•„μš”ν•œ μ‹œκ°„μ˜ ν•©μ˜ μ΅œμ†Ÿκ°’을 μΆœλ ₯ν•œλ‹€.

     

      ν’€μ΄ 방법

     

    πŸ”Ή νƒμš• μ•Œκ³ λ¦¬μ¦˜(그리디, Greedy)

    πŸ”Ή μ •λ ¬

    πŸ”Ή μ†Œμš”μ‹œκ°„μ΄ κΈ΄ μ‚¬λžŒμ΄ μ•ž μˆœμ„œμ— λ“€μ–΄μžˆμœΌλ©΄, 뒀에 μžˆλŠ” μ‚¬λžŒμ˜ λŒ€κΈ°μ‹œκ°„μ€ 더 길어진닀. λ”°λΌμ„œ μ˜€λ¦„μ°¨μˆœ μ •λ ¬ ν›„, μ•ž μ‚¬λžŒμ˜ λŒ€κΈ°μ‹œκ°„ + μ•ž μ‚¬λžŒμ˜ μ†Œμš”μ‹œκ°„μ„ 순차적으둜 λ”ν•œ 값을 κ΅¬ν•œλ‹€.

     

      κ΅¬ν˜„ μ½”λ“œ

    import sys
    N = int(sys.stdin.readline())
    orders = sorted(map(int,sys.stdin.readline().split()))
    for i in range(1,len(orders)):
        orders[i] += orders[i-1]
    print(sum(orders))

     

      μ‹€ν–‰ μ½”λ“œ

     

      πŸ’‘

     

     

     

     

     

     

    728x90

    λŒ“κΈ€

Designed by Tistory.