Leetcode 를 풀어 보았다.

a-paka·2022년 2월 22일
0
  1. Smallest String With A Given Numeric Value

이거 예전에 풀어본 적 있는 문제인데...

길이 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()))
}
profile
iOS Engineer

0개의 댓글