๋ฐฑ์ค - ์ธํ์ ์ฌ์ฅ ๋ํ(Swift)
2022. 10. 28. 10:36ใAlgorithm
๋ฐฑ์ค - ์ธํ์ ์ฌ์ฅ ๋ํ(Swift)
๋ฌธ์ ์ค๋ช
https://www.acmicpc.net/problem/2720
๋์ ํ์ด
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ฐ ์ด๋ ค์์ด ์์ง๋ ์์์ง๋ง ๋์ ๋๋ฆฌ ๋ด๋ถ ๊ฐ์ ์ด๊ธฐ์ 0์ผ๋ก ์ด๊ธฐํํ๊ฑฐ๋ joined๋ String๋ฐฐ์ด์๋ง ์ ์ฉํ ์ ์๋ค๋ ๊ฒ๊ณผ joined์ ๊ณต๋ฐฑ๊ฐ์ ์ฃผ๊ธฐ์ํด์๋ separator๋ณ์๋ฅผ ์จ์ผํ๋ ๋ฑ์ ๊ณ ๋ฏผ์ด ํ์ํ๋ค.
๊ทธ๋ฆฌ๊ณ ๋์ ๋๋ฆฌ์์ key๊ฐ์ ๊ธฐ์ค์ผ๋ก values๋ง ๋ฝ๊ณ ์ถ์๋๋ sortedํ ๋ค์ value๋ง ๋ฝ์ผ๋ฉด ๋๋ค.
์์๋ก [3:4, 1:2]๋ผ๋ ๋์ ๋๋ฆฌ๊ฐ ์๋ค๋ฉด
sortedํ์๋ [(key:1, value:2), (key:3, value:4)]๊ฐ ๋์จ๋ค. ์ฆ ๋์ ๋๋ฆฌ๋ฅผ ๋ฐฐ์ด๋ก ๋ง๋ค๋๋ key, value ํ ์์ผ๋ก ํํํํ๋ก ๋์ค๋ ๊ฒ์ด๋ค.
import Foundation
func findMoney(_ num: Int) -> String {
let arr = [25, 10, 5, 1]
var dic: [Int: Int] = [25: 0, 10: 0, 5: 0, 1: 0]
var num = num
var idx = 0
while num > 0 {
if num >= arr[idx] {
dic[arr[idx]] = num / arr[idx]
num = num % arr[idx]
}
idx += 1
}
return dic.sorted(by: >).map{String($0.value)}.joined(separator: " ")
}
func main() {
let n = Int(readLine()!)!
for _ in 0..<n {
let num = Int(readLine()!)!
print(findMoney(num))
}
}
main()
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค - ๋ฉํฐํญ ์ค์ผ์ค๋ง(Swift) (0) | 2022.10.31 |
---|---|
๋ฐฑ์ค - ํฐ๋ฆฐ๋๋กฌ ๋ง๋ค๊ธฐ(Swift) (0) | 2022.10.28 |
๋ฐฑ์ค - ๊ฐ์์ค ๋ฐฐ์ (Swift) (0) | 2022.10.28 |
๋ฐฑ์ค - ์ ์ธ(Swift) (1) | 2022.10.27 |
๋ฐฑ์ค - ํ๋ ฌ(Swift) (0) | 2022.10.27 |