Algorithm
๋ฐฑ์ค - ์ ์๋ ์ธ์ง(Swift)
CheonD
2022. 10. 23. 17:25
๋ฐฑ์ค - ์ ์๋ ์ธ์ง(Swift)
๋ฌธ์ ์ค๋ช
https://www.acmicpc.net/problem/10162
10162๋ฒ: ์ ์๋ ์ธ์ง
3๊ฐ์ ์๊ฐ์กฐ์ ์ฉ ๋ฒํผ A B C๊ฐ ๋ฌ๋ฆฐ ์ ์๋ ์ธ์ง๊ฐ ์๋ค. ๊ฐ ๋ฒํผ๋ง๋ค ์ผ์ ํ ์๊ฐ์ด ์ง์ ๋์ด ์์ด ํด๋น ๋ฒํผ์ ํ๋ฒ ๋๋ฅผ ๋๋ง๋ค ๊ทธ ์๊ฐ์ด ๋์์๊ฐ์ ๋ํด์ง๋ค. ๋ฒํผ A, B, C์ ์ง์ ๋ ์๊ฐ์
www.acmicpc.net
๋์ ํ์ด
ํฐ ๊ฒ๋ถํฐ ์ฒ๋ฆฌํด์ฃผ๋ฉด ๋๋ ๊ฐ๋จํ ๊ทธ๋ฆฌ๋ ๋ฌธ์ ์ด๋ค.
๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๋ณด๋ ๋ก์ง์ ํจ์๋ก๋ง๋ค์ด์ print์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ์ฉ์ดํ๊ฒ ํ๋ ๊ฒ์ ๋ณผ ์ ์์๋ค.
๋๋ ๋ค์๋ถํฐ๋ ํจ์๋ฅผ ๋ง๋ค์ด์ ์ฌ์ฉํด๋ด์ผ๊ฒ ๋ค.
import Foundation
var n = Int(readLine()!)!
let arr: [Int] = [300, 60, 10]
var cnt: [Int] = [0, 0, 0]
var idx = 0
var flag = false
while n > 0 {
if idx == 3 {
flag = true
break
}
if n >= arr[idx] {
cnt[idx] = n / arr[idx]
n = n % arr[idx]
}
idx += 1
}
if flag {
print(-1)
} else {
cnt.forEach{ print($0, terminator: " ") }
}