2022. 10. 25. 19:40ใAlgorithm
๋ฐฑ์ค - ์ ๋ฌถ๊ธฐ(Swift)
๋ฌธ์ ์ค๋ช
https://www.acmicpc.net/problem/1744
๋์ ํ์ด
์ฒ์์๋ ์คํ์ ์ ์ํด์ 1๋ณด๋ค ํฐ ๊ฐ์ด 2๊ฐ๊ฐ ๋ค์ด์จ๋ค๋ฉด ๊ณฑํด์ฃผ๊ณ ์๋๋ผ๋ฉด ๋ํด์ค์ ๋ฌธ์ ๋ฅผ ํ์๋๋ ์์ ๋๊ฐ๊ฐ ๊ณฑํด์ง ๊ฒฝ์ฐ๋ ์์๊ฐ ๋๋ค๋ ์ฌ์ค์ ๊ฐ๊ณผํ๊ณ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ๋ชปํ๋ค.
์ด ๋ฌธ์ ๋ 1๋ณด๋ค ํฐ ์, 1์ธ ์, 0๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ 3๊ฐ๋ก ๋ถ๋ฅํด์ ํ์ด์ผํ๋ค.
1๋ณด๋ค ํฐ์๋ ์ ๋ถ ๊ณฑํด์ฃผ๊ณ , 1์ธ์๋ ์ ๋ถ ๋ํด์ฃผ๋ฉฐ 0๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์๋ ์ ๋ถ ๊ณฑํด์ฃผ๋ฉด๋๋ค.
๋จ 1๋ณด๋ค ํฐ์๋ ๊ทธ๋ ๊ณ 0๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ ๊ฐ์๊ฐ ํ์๊ฐ๋ผ๋ฉด ๊ณฑํ์๋ ๊ฐ์ฅ ์์ ๊ฐ์ ๋ง๋๋ ์ซ์๋ง ๋ํด์ฃผ๊ณ ์ง์์ธ์ฑ๋ก ๊ณฑํด์ค์ผํ๋ค.
๋ฌธ์ ์ ๋ํด ๋ถ๋ฅ๋ฅผ ํ์คํ๊ฒ ํด์ ๊ท์น์ ์ฐพ๋ ์ฐ์ต์ด ํ์ํ๋ค.
import Foundation
let n = Int(readLine()!)!
var plus: [Int] = []
var minus: [Int] = []
var sum = 0
for _ in 0..<n {
let a = Int(readLine()!)!
if a <= 0 { minus.append(a) }
else if a == 1 { sum += 1 }
else { plus.append(a) }
}
plus.sort(by: >)
minus.sort(by: <)
if plus.count % 2 == 1 { sum += plus.removeLast()}
if minus.count % 2 == 1 { sum += minus.removeLast()}
while plus.count > 0 || minus.count > 0 {
if plus.count > 0 { sum += plus.removeLast() * plus.removeLast() }
if minus.count > 0 { sum += minus.removeLast() * minus.removeLast() }
}
print(sum)
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค - ์๋ฆฌ๊ณต ํญ์น(Swift) (0) | 2022.10.26 |
---|---|
๋ฐฑ์ค - ๋ฌธ์ ๊ฒ์(Swift) (0) | 2022.10.26 |
๋ฐฑ์ค - ๊ธฐํ์ค(Swift) (0) | 2022.10.25 |
๋ฐฑ์ค - ๋ณด์๋๋(Swift) (0) | 2022.10.25 |
๋ฐฑ์ค - ์บ ํ(Swift) (0) | 2022.10.25 |