관리 메뉴

sleepyotter

LeetCode/171. Excel Sheet Column Number 본문

프로그래밍/알고리즘+코딩테스트

LeetCode/171. Excel Sheet Column Number

sleepyotter. 2022. 2. 19. 02:03

10진법과 같다. 다만 자리수가 10의 제곱으로 증가하는 것이 아닌 26의 제곱으로 증가하는 것이다.

예시로, 32라는 숫자는 CB와 같다. 32는 10^1 * 3 + 10^0 * 2 로, CB는 26^1 * 3 + 26^0 * 2로 나타낼 수 있다.

마찬가지로 문제에서 주어진 예시인 ZY는 26^1 * 26 + 25 = 701로 맞아떨어짐을 볼 수 있다.

class Solution {
public:
    int titleToNumber(string columnTitle) {
        int ascValue = 0;
        if(columnTitle.length() == 1)
        {
            return (int(columnTitle[0])-64);
        }
        
        if(columnTitle.length() > 1)
        {
            for(int i=columnTitle.length()-1; i >=0 ; --i)
            {
                ascValue += pow(26, columnTitle.length()-1-i)*(columnTitle[i]-'A'+1);
            }
        }
        return ascValue;
    }
};