이거 예전에 풀어본 적 있는 문제인데...
길이 n 인 String 이 도합 k 의 value 를 가지면서 사전순으로 가장 앞에 나와야 한다.
그리디 하게 풀고 뒤집으면 된다.
func getSmallestString(_ n: Int, _ k: Int) -> String {
var res = [Character]()
var k = k
for i in 0..<n {
var r = k - (n - 1 - i) // 이거 가지고 만들어야 된다.
if r > 26 {
res += ["z"]
k -= 26
} else {
res += [Character(UnicodeScalar(97 + r - 1)!)]
k -= r
}
}
return String(Array(res.reversed()))
}