십진법으로 된 일반 자연수를 특정 진수로 만들기. 특정 진법으로 쓴 수를 십진법으로 읽기.
import Foundation
func solution(_ n:Int) -> Int {
let convertedNumber = getReversedKnary(n, 3)
let decimal = calculate(convertedNumber, 3)
return decimal
}
func calculate(_ number: String, _ K: Int) -> Int {
var times = 1
var total = 0
for digit in number.reversed() {
total += Int(String(digit))! * times
times *= K
}
return total
}
func getReversedKnary(_ number: Int, _ K: Int) -> String {
var number = number
var convertedNumber = ""
while number > 0 {
let q = number / K
let r = number % K
number = q
convertedNumber += String(r)
}
return convertedNumber
}