λ°±μ€€ - λ‘œν”„(Swift)

2022. 10. 23. 17:03ㆍAlgorithm

λ°±μ€€ - λ‘œν”„(Swift)

 

 

 λ¬Έμ œ μ„€λͺ…

 

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

 

2217번: λ‘œν”„

N(1 ≤ N ≤ 100,000)개의 λ‘œν”„κ°€ μžˆλ‹€. 이 λ‘œν”„λ₯Ό μ΄μš©ν•˜μ—¬ 이런 μ €λŸ° 물체λ₯Ό λ“€μ–΄μ˜¬λ¦΄ 수 μžˆλ‹€. 각각의 λ‘œν”„λŠ” κ·Έ κ΅΅κΈ°λ‚˜ 길이가 λ‹€λ₯΄κΈ° λ•Œλ¬Έμ— λ“€ 수 μžˆλŠ” 물체의 μ€‘λŸ‰μ΄ μ„œλ‘œ λ‹€λ₯Ό μˆ˜λ„ μžˆλ‹€. ν•˜

www.acmicpc.net

 

 λ‚˜μ˜ 풀이

 

이 λ¬Έμ œλŠ” λ‘œν”„κ°€ 3개 μžˆμ„λ•Œ 1개만 μ‚¬μš©ν–ˆμ„λ•Œμ˜ μ΅œλŒ€κ°’ vs 2개λ₯Ό μ‚¬μš©ν–ˆμ„λ•Œμ˜ μ΅œλŒ€κ°’ vs 3개λ₯Ό μ‚¬μš©ν–ˆμ„λ•Œμ˜ μ΅œλŒ€κ°’ 쀑에 μ΅œλŒ€κ°’μ„ κ΅¬ν•˜λ©΄ λœλ‹€.

 

1개만 μ‚¬μš©ν–ˆμ„λ•Œμ˜ μ΅œλŒ€κ°’μ€ κ°€μž₯ 큰 값이 될 것이고 2개λ₯Ό μ‚¬μš©ν–ˆμ„λ•Œμ˜ μ΅œλŒ€κ°’μ€ κ·Έ λ‹€μŒ κ°€μž₯ 큰 값에 2λ₯Ό κ³±ν•˜λ©΄ λœλ‹€. 

이 λ•Œλ¬Έμ— μ •λ ¬ν•˜κ³  λ°˜λŒ€λ‘œ νƒμƒ‰ν•˜λ©΄μ„œ κ³±ν•΄μ£Όμ—ˆλ‹€.

 

μ²˜μŒμ—λŠ” λ°°μ—΄μ—μ„œ κ°€μž₯ μž‘μ€ 값을 μ°Ύκ³  인덱슀λ₯Ό κ³±ν•΄μ£Όκ³  μ§€μš°λŠ” λ°©λ²•μœΌλ‘œ ν–ˆλŠ”λ° μ‹œκ°„μ΄ˆκ³Όκ°€ λ‚˜μ„œ μ•„λž˜ λ°©μ‹μœΌλ‘œ ν–ˆλ‹€.

 

import Foundation

let n = Int(readLine()!)!
var arr: [Int] = []
var max_val = 0
for _ in 0..<n {
    arr.append(Int(readLine()!)!)
}

arr.sort(by: >)

for i in stride(from: n-1, to: -1, by: -1) {
    max_val = max(max_val, arr[i]*(i+1))
}

print(max_val)