๐Ÿงฉ Algorithm/[BOJ] Silver

BOJ 2217๋ฒˆ : ๋กœํ”„ (Python/Silver 4)

devCloud 2023. 4. 3. 20:39
728x90
 

2217๋ฒˆ: ๋กœํ”„

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

www.acmicpc.net

๋ฌธ์ œ
N(1 ≤ N ≤ 100,000)๊ฐœ์˜ ๋กœํ”„๊ฐ€ ์žˆ๋‹ค. ์ด ๋กœํ”„๋ฅผ ์ด์šฉํ•˜์—ฌ ์ด๋Ÿฐ ์ €๋Ÿฐ ๋ฌผ์ฒด๋ฅผ ๋“ค์–ด์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ๋กœํ”„๋Š” ๊ทธ ๊ตต๊ธฐ๋‚˜ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฌผ์ฒด์˜ ์ค‘๋Ÿ‰์ด ์„œ๋กœ ๋‹ค๋ฅผ ์ˆ˜๋„ ์žˆ๋‹ค.
ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋กœํ”„๋ฅผ ๋ณ‘๋ ฌ๋กœ ์—ฐ๊ฒฐํ•˜๋ฉด ๊ฐ๊ฐ์˜ ๋กœํ”„์— ๊ฑธ๋ฆฌ๋Š” ์ค‘๋Ÿ‰์„ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. k๊ฐœ์˜ ๋กœํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘๋Ÿ‰์ด w์ธ ๋ฌผ์ฒด๋ฅผ ๋“ค์–ด์˜ฌ๋ฆด ๋•Œ, ๊ฐ๊ฐ์˜ ๋กœํ”„์—๋Š” ๋ชจ๋‘ ๊ณ ๋ฅด๊ฒŒ w/k ๋งŒํผ์˜ ์ค‘๋Ÿ‰์ด ๊ฑธ๋ฆฌ๊ฒŒ ๋œ๋‹ค.
๊ฐ ๋กœํ”„๋“ค์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด ๋กœํ”„๋“ค์„ ์ด์šฉํ•˜์—ฌ ๋“ค์–ด์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ฌผ์ฒด์˜ ์ตœ๋Œ€ ์ค‘๋Ÿ‰์„ ๊ตฌํ•ด๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋ชจ๋“  ๋กœํ”„๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ํ•„์š”๋Š” ์—†์œผ๋ฉฐ, ์ž„์˜๋กœ ๋ช‡ ๊ฐœ์˜ ๋กœํ”„๋ฅผ ๊ณจ๋ผ์„œ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค.
 
์ž…๋ ฅ
์ฒซ์งธ ์ค„์— ์ •์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ ๋กœํ”„๊ฐ€ ๋ฒ„ํ‹ธ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ค‘๋Ÿ‰์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๊ฐ’์€ 10,000์„ ๋„˜์ง€ ์•Š๋Š” ์ž์—ฐ์ˆ˜์ด๋‹ค.
 
์ถœ๋ ฅ
์ฒซ์งธ ์ค„์— ๋‹ต์„ ์ถœ๋ ฅํ•œ๋‹ค.


์˜ˆ์ œ ์ž…๋ ฅ

2
10
15

์˜ˆ์ œ ์ถœ๋ ฅ

20

ํ’€์ด

 

 

3๊ฐœ์˜ ๋กœํ”„๊ฐ€ ์žˆ๊ณ ,

๋กœํ”„๊ฐ€ ๋ฒ„ํ‹ธ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ค‘๋Ÿ‰์ด ๊ฐ 1, 8, 10์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜์ž.

 

 

 


 

์ฒซ ๋ฒˆ์งธ ๋กœํ”„๋ถ€ํ„ฐ ํ™•์ธํ•ด๋ณด์ž.

์ตœ๋Œ€ ์ค‘๋Ÿ‰์ด 1์ธ ๋ฌผ์ฒด๋ฅผ ๋“ค์–ด์˜ฌ๋ฆด ๋•Œ, ๋‚˜๋จธ์ง€ 2๊ฐœ์˜ ๋กœํ”„๋Š” 1์ด์ƒ์ด๋ฏ€๋กœ 3๊ฐœ์˜ ๋กœํ”„๋กœ ๋ฒ„ํ‹ธ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋“ค์–ด์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ฌผ์ฒด์˜ ์ตœ๋Œ€ ์ค‘๋Ÿ‰์€ 1*3 = 3์ด๋‹ค. 

 

 


 

๋‘ ๋ฒˆ์งธ ๋กœํ”„๋ฅผ ํ™•์ธํ•˜์ž.

์ตœ๋Œ€ ์ค‘๋Ÿ‰์ด 8์ธ ๋ฌผ์ฒด๋ฅผ ๋“ค์–ด์˜ฌ๋ฆด ๋•Œ, 8๋ฏธ๋งŒ์ธ ๋กœํ”„๋Š” ๋ฒ„ํ‹ฐ์ง€ ๋ชปํ•œ๋‹ค. ๋”ฐ๋ผ์„œ 8์ด์ƒ์ธ 2๊ฐœ์˜ ๋กœํ”„๋งŒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ๋“ค์–ด์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ฌผ์ฒด์˜ ์ตœ๋Œ€ ์ค‘๋Ÿ‰์€ 2*8 = 16์ด๋‹ค.

 

 


 

 

์„ธ ๋ฒˆ์งธ ๋กœํ”„๋ฅผ ํ™•์ธํ•˜์ž.

์ตœ๋Œ€ ์ค‘๋Ÿ‰์ด 10์ธ ๋ฌผ์ฒด๋ฅผ ๋“ค์–ด์˜ฌ๋ฆด ๋•Œ, 10๋ฏธ๋งŒ์ธ ๋กœํ”„๋Š” ๋ฒ„ํ‹ฐ์ง€ ๋ชปํ•œ๋‹ค. ๋”ฐ๋ผ์„œ 10์ด์ƒ์ธ 1๊ฐœ์˜ ๋กœํ”„๋งŒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ๋“ค์–ด์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ฌผ์ฒด์˜ ์ตœ๋Œ€ ์ค‘๋Ÿ‰์€ 1*10 = 10์ด๋‹ค.

 

 

 

๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ตœ๋Œ€ ์ค‘๋Ÿ‰์ด 8์ด์ƒ์ธ ๋กœํ”„ 2๊ฐœ๋ฅผ ์ด์šฉํ–ˆ์„ ๋•Œ ๋ฌผ์ฒด์˜ ์ค‘๋Ÿ‰์ด ์ตœ๋Œ€์ด๊ธฐ ๋•Œ๋ฌธ์—  ๋‹ต์€ 16์ด๋‹ค.

 

Solution

import sys
input = sys.stdin.readline

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

n.sort() #O(NlogN)
ans = []
for i in n:
    ans.append(i * N)
    N -= 1
print(max(ans))

 

728x90