Leetcode - 171. Excel Sheet Column Number

숲사람·2022년 7월 4일
0

멘타트 훈련

목록 보기
82/237
post-custom-banner

문제

엑셀표에 열이름을 10진수로 계산하라.

A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28 
Input: columnTitle = "ZY"
Output: 701

해결 O(N)

결국 26개의 서로다른 문자로 수를 표현하는것과같다. (26진수)
따라서 "ABC"의 경우 공식은 아래와 같다. 그리고 A~Z 문자는 1~26으로 바꿔서 계산하면 된다.
(A * 26^2) + (B * 26^1) + (C * 26^0)

int titleToNumber(char * columnTitle){
    long ret = 0;
    int csize = strlen(columnTitle);
    long mul = 1;

    for (int i = csize - 1; i >= 0; i--) {
        ret += (columnTitle[i] - 'A' + 1) * mul;
        mul *= 26;
    }
    return (int)ret;
}
profile
기록 & 정리 아카이브용
post-custom-banner

0개의 댓글