๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

[๋ฐฑ์ค€] (Python) 2217๋ฒˆ _๋กœํ”„

Dbswnstjd 2022. 2. 17. 16:30

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

 

2217๋ฒˆ: ๋กœํ”„

N(1 ≤ N ≤ 100,000)๊ฐœ์˜ ๋กœํ”„๊ฐ€ ์žˆ๋‹ค. ์ด ๋กœํ”„๋ฅผ ์ด์šฉํ•˜์—ฌ ์ด๋Ÿฐ ์ €๋Ÿฐ ๋ฌผ์ฒด๋ฅผ ๋“ค์–ด์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ๋กœํ”„๋Š” ๊ทธ ๊ตต๊ธฐ๋‚˜ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฌผ์ฒด์˜ ์ค‘๋Ÿ‰์ด ์„œ๋กœ ๋‹ค๋ฅผ ์ˆ˜๋„ ์žˆ๋‹ค. ํ•˜

www.acmicpc.net

ํ’€์ด

# ๋ฐฑ์ค€ 2217๋ฒˆ ๋ฌธ์ œ - ๋กœํ”„
def solution():
    arr.sort(reverse=True) # ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ
    for i in range(n):  # 1๋ถ€ํ„ฐ N๊นŒ์ง€ ๊ณฑํ•˜๋Š” ์‹
        arr[i] = arr[i] * (i+1)

    return max(arr) # ๊ณ„์‚ฐํ•œ ๊ฐ’ ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ return

n = int(input())
arr = []
for _ in range(n):
    arr.append(int(input()))

print(solution())

ex)

arr = [20, 30, 50, 40, 15]

arr.sort(reverse=True) => [50,40,30,20,15]

1๊ฐœ - 50 * 1 = 50

2๊ฐœ - 40 * 2 = 80

3๊ฐœ - 30 * 3 = 90

4๊ฐœ - 20 * 4 = 80

5๊ฐœ - 15 * 5 = 75

max(arr) = 90