[ LeetCode ] 168 Excel Sheet Column Title

codesver·2023년 7월 6일
0

LeetCode

목록 보기
20/24
post-thumbnail

📌 Problem

A -> 1 ... Z -> 26이다. 또한 AA -> 27 ... ZZ -> 702이다. 정수가 주어졌을 때 이를 알파벳으로 나타내면 된다.

📌 Solution

A = 0이고 Z = 25이면 간단하게 26진수를 구하는 방법으로 계산할 수 있다. 하지만 이 문제에서는 0이 존재하지 않는다. 그렇기 때문에 나머지가 0이 나올 때는 몫에서 1을 빼서 Z로 변환하면 된다.

📌 Example

52 to AZ
52를 26으로 나눈 나머지는 0이다. 이 문제에서는 0과 맞는 알파벳이 없기 때문에 몫인 2에서 1을 빼와서 Z로 변환한다. 이제 남은 몫 1을 다시 26으로 나눈 나머지가 1이기 때문에 이를 A로 변환하여 최종적으로 AZ가 된다.

701 to ZY
701을 26으로 나눈 나머지는 25이다. 25는 Y으로 변환된다. 몫은 26이며 이를 다시 26으로 나눈 나머지는 0이다. 0은 없기 때문에 몫인 1을 가져와서 Z로 변환한다. 최종적으로 ZY가 된다.

📌 Code

class Solution {
    fun convertToTitle(columnNumber: Int): String {
        var num = columnNumber
        var str = ""
        while (num != 0) {
            if (num % 26 == 0) {
                str = "Z${str}"
                num = num / 26 - 1
            } else {
                str = "${(num % 26 + 64).toChar()}${str}"
                num /= 26
            }
        }
        return str
    }
}
profile
Hello, Devs!

0개의 댓글