๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
3๏ธโƒฃ Swift/Problem Solving

[Swift Algorithm] ๋กœํ”„ BOJ #2217

by seolhee2750 2021. 8. 18.
๋ฌธ์ œ ์„ค๋ช…

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

ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋กœํ”„๋ฅผ ๋ณ‘๋ ฌ๋กœ ์—ฐ๊ฒฐํ•˜๋ฉด ๊ฐ๊ฐ์˜ ๋กœํ”„์— ๊ฑธ๋ฆฌ๋Š” ์ค‘๋Ÿ‰์„ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. k๊ฐœ์˜ ๋กœํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘๋Ÿ‰์ด w์ธ ๋ฌผ์ฒด๋ฅผ ๋“ค์–ด์˜ฌ๋ฆด ๋•Œ, ๊ฐ๊ฐ์˜ ๋กœํ”„์—๋Š” ๋ชจ๋‘ ๊ณ ๋ฅด๊ฒŒ w/k ๋งŒํผ์˜ ์ค‘๋Ÿ‰์ด ๊ฑธ๋ฆฌ๊ฒŒ ๋œ๋‹ค.

๊ฐ ๋กœํ”„๋“ค์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด ๋กœํ”„๋“ค์„ ์ด์šฉํ•˜์—ฌ ๋“ค์–ด์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ฌผ์ฒด์˜ ์ตœ๋Œ€ ์ค‘๋Ÿ‰์„ ๊ตฌํ•ด๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋ชจ๋“  ๋กœํ”„๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ํ•„์š”๋Š” ์—†์œผ๋ฉฐ, ์ž„์˜๋กœ ๋ช‡ ๊ฐœ์˜ ๋กœํ”„๋ฅผ ๊ณจ๋ผ์„œ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ •์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ ๋กœํ”„๊ฐ€ ๋ฒ„ํ‹ธ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ค‘๋Ÿ‰์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๊ฐ’์€ 10,000์„ ๋„˜์ง€ ์•Š๋Š” ์ž์—ฐ์ˆ˜์ด๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ๋‹ต์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ์ œ

์ž…๋ ฅ

2
10
15

์ถœ๋ ฅ

20

 

(์œ„์˜ ์˜ˆ์ œ๋กœ ํŒ๋‹จํ•˜๊ธฐ ํž˜๋“  ๋ถ€๋ถ„์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋˜์–ด ์ถ”๊ฐ€)

๋‚ด๊ฐ€ ๋งŒ๋“  ์ž…๋ ฅ

4
1
2
3
100

๋‚ด๊ฐ€ ๋งŒ๋“  ์ถœ๋ ฅ

100

 

๋‚ด ๋ฌธ์ œ ํ’€์ด
import Foundation

let N = Int(readLine()!)!
var rope = [Int]()
var answer = [Int]()

for _ in 0..<N {
    rope.append(Int(readLine()!)!)
}

rope.sort()

for i in 0..<rope.count {
    answer.append(rope[i] * rope[i...rope.count-1].count)
}
print(answer.max()!)

๐Ÿ‘‰ ๊ฐ€์žฅ ๋ฌด๊ฑฐ์šด ๋ฌด๊ฒŒ๋ฅผ ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ํƒํ•ด์•ผํ•˜๊ณ , ์–ด๋– ํ•œ ๋ฌด๊ฒŒ๋ฅผ ๊ณ ๋ฅผ ์‹œ ํ•ด๋‹น ๋ฌด๊ฒŒ๋ฅผ ๊ฐ๋‹นํ•˜๋Š” ๋ชจ๋“  ๋กœํ”„๊ฐ€ ๊ฐ™์€ ๋ฌด๊ฒŒ๋ฅผ ์ง€๊ฒŒ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์žฅ ํšจ์œจ์ ์ธ ๋กœํ”„ ์„ ํƒ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ œ์ผ ์ž‘์€ ๋ฌด๊ฒŒ๋ฅผ ๊ฐ๋‹นํ•˜๋Š” ๋กœํ”„๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์‚ญ์ œํ•ด์•ผํ•œ๋‹ค๋Š” ์ ์ด ํฌ์ธํŠธ!

  • ์ž…๋ ฅ๋œ ๋กœํ”„๋“ค์˜ ์ตœ๋Œ€ ๋ฌด๊ฒŒ๋ฅผ rope ๋ฐฐ์—ด๋กœ ๋ฐ›๊ณ , ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ–ˆ๋‹ค.
  • rope ๋ฐฐ์—ด ์ˆœ์„œ๋Œ€๋กœ ํ•ด๋‹น ๋กœํ”„๊ฐ€ ์„ ํƒ๋œ๋‹ค๋ฉด, ์ตœ๋Œ€๋กœ ์–ด๋–ค ๋ฌด๊ฒŒ๋ฅผ ๋“ค์–ด์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋Š”์ง€ answer ๋ฐฐ์—ด์— ์ถ”๊ฐ€ํ–ˆ๋‹ค.
  • ์™„์„ฑ๋œ answer ๋ฐฐ์—ด์—์„œ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด ๋!

 

๐Ÿ’ก ํ”ผ๋“œ๋ฐฑ
  • ๋‚˜๋งŒ ๊ทธ๋Ÿฐ๊ฑด์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ,, ์ฒ˜์Œ์— ๊ต‰์žฅํžˆ ๋‹จ์ˆœํ•˜๊ฒŒ ์ƒ๊ฐํ–ˆ๋”๋‹ˆ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์ˆ˜์ •ํ•ด๋„ ์˜ˆ์™ธ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ–ˆ๋‹ค.
    ๊ทธ๋ž˜์„œ ๋งž๊ฒŒ ํ’€์ดํ•˜๋Š”๋ฐ์— ๊ฝค ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ๋‹ค.ใ…Žใ…œ
  • ๊ทผ๋ฐ ๋งˆ์ง€๋ง‰๊นŒ์ง€ ์ฐพ๋Š”๋ฐ ๋„ˆ๋ฌด๋„ˆ๋ฌด ์˜ค๋ž˜๊ฑธ๋ ธ๋˜ ์˜ˆ์™ธ๊ฐ€ ๋ฐ”๋กœ  ์œ„์— ์ถ”๊ฐ€ํ•œ ์ž…์ถœ๋ ฅ ์˜ˆ์ œ.
    ๊ทธ ์˜ˆ์™ธ๋ฅผ ์ฐพ๊ณ ๋‚˜๋‹ˆ ๊ธˆ๋ฐฉ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 


 

๋ฌธ์ œ

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

๋Œ“๊ธ€