2022. 10. 25. 18:46ใAlgorithm
๋ฐฑ์ค - ๊ธฐํ์ค(Swift)
๋ฌธ์ ์ค๋ช
https://www.acmicpc.net/problem/1049
๋์ ํ์ด
์ฒ์์ ์ด ๋ฌธ์ ๋ฅผ ํ์๋ ํ ๊ฐ์ง ๋ธ๋๋๋ง ์์๋ ์ต์๊ฐ์ธ๊ฑธ๋ก ์คํด๋ฅผ ํ์๋ค.
ํ์ง๋ง ์์ ๋ฅผ ๋ณด๋ฉด์ ์๋ ๊ฒ์ ์๊ฒ๋์๊ณ ํจํค์ง์ค์ ๊ฐ์ฅ ์ต์์ ๊ฐ๊ณผ ๋ฑ๊ฐ ์ค ๊ฐ์ฅ ์ต์์ ๊ฐ์ ๊ตฌํ ๋ค
1. ํจํค์ง๋ง ์ ๋ถ ์์ ๋
2. ํจํค์ง + ๋ฑ๊ฐ๋ฅผ ์์ ๋
3. ๋ฑ๊ฐ๋ก๋ง ์์๋
๋ก ๋๋์ด์ ํ์๋ค.
2๋ฒ์ ๊ฒฝ์ฐ ํจํค์ง๋ฅผ ์ต๋ํ ๋ง์ด์ฌ๋ฉด ์ข์๋ฐ ๊ทธ ์ด์ ๋ ํจํค์ง๋ฅผ ์ฌ๋ ๊ฒ์ด ๋ฑ๊ฐ๋ฅผ ์ฌ๋๊ฒ๋ณด๋ค ์ด๋์ธ ๊ฒฝ์ฐ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
import Foundation
let input = readLine()!.components(separatedBy: " ").map{Int($0)!}
let n = input[0], m = input[1]
var minPac = Int.max
var minPer = Int.max
for _ in 0..<m {
let tmp = readLine()!.components(separatedBy:" ").map{Int($0)!}
minPac = min(minPac, tmp[0])
minPer = min(minPer, tmp[1])
}
var pureNum = 1.0
var restNum = 0
var minNum = Int.max
if n > 6 {
pureNum = Double(n) / Double(6)
restNum = n % 6
minNum = min(minNum, Int(ceil(pureNum) * Double(minPac)), Int(pureNum)*minPac+(restNum*minPer), n*minPer)
} else {
minNum = min(minNum, Int(ceil(pureNum) * Double(minPac)), n*minPer)
}
print(minNum)
๋ค๋ฅธ์ฌ๋์ ํ์ด
์ข ๋ ๊น๋ํ ๋ก์ง์ ๋ด์ ํ์ด์ด๋ค.
๋จผ์ ์ต์์ ํจํค์ง์ ๊ฐ๊ฒฉ๊ณผ ์ต์ ๋ฑ๊ฐ์ ๊ฐ๊ฒฉ์ ๊ตฌํ ๋ค, ์ต์ ๋ฑ๊ฐ์ ๊ฐ๊ฒฉ*6์ด ์ต์ ํจํค์ง์ ๊ฐ๊ฒฉ๋ณด๋ค ์๋ค๋ฉด ์ต์ ํจํค์ง๋ฅผ ์ฌ์ฉํ ์ด์ ๊ฐ ์์ผ๋ฏ๋ก ์ต์ ๋ฑ๊ฐ๋ก๋ง ๊ณฑํด์ค์ ์ถ๋ ฅํ๋ค.
๋ง์ฝ ์ด ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๋ฉด ํจํค์ง๋ฅผ ์ต๋ํ ๋ฃ์ด์ค ๋ค ๋๋จธ์ง๋ก ๋์ค๋ ์ค์ ๋ํด ๊ฐ์ * ๋ฑ๊ฐ์ ๊ฐ๊ฒฉ๊ณผ ํจํค์ง์ ๊ฐ๊ฒฉ์ ๋น๊ตํด์ total์ ๋ฃ์ ๊ฐ์ ๊ตฌํด์ค๋ค.
import Foundation
let input = readLine()!.components(separatedBy: " ").map{Int($0)!}
let n = input[0], m = input[1]
var minPac = Int.max
var minPer = Int.max
for _ in 0..<m {
let tmp = readLine()!.components(separatedBy:" ").map{Int($0)!}
minPac = min(minPac, tmp[0])
minPer = min(minPer, tmp[1])
}
var total = 0
if minPac > minPer * 6 {
total += minPer * n
} else {
let pageCount = n / 6
let pieceCount = n % 6
total += pageCount * minPac
if pieceCount * minPer < minPac {
total += pieceCount * minPer
} else {
total += minPac
}
}
print(total)
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค - ๋ฌธ์ ๊ฒ์(Swift) (0) | 2022.10.26 |
---|---|
๋ฐฑ์ค - ์ ๋ฌถ๊ธฐ(Swift) (0) | 2022.10.25 |
๋ฐฑ์ค - ๋ณด์๋๋(Swift) (0) | 2022.10.25 |
๋ฐฑ์ค - ์บ ํ(Swift) (0) | 2022.10.25 |
๋ฐฑ์ค A->B(Swift) (0) | 2022.10.24 |