엑셀의 열을 숫자로 바꾸는 문제입니다.
https://leetcode.com/problems/excel-sheet-column-number
class Solution {
public:
int titleToNumber(string columnTitle) {
int count = 0;
for(int i=0;i<columnTitle.size();i++){
count += alphaTransfer(columnTitle[i]) * pow(26,columnTitle.size()-1-i);
}
return count;
}
int alphaTransfer(char c){
return (int)c -64;
}
};
생각보다 쉽게 수현할 수 있었고, 속도도 잘 나왔지만
pow를 쓴 점이 아쉽습니다.
문제를 보면서 26진법이라는 것은 감을 잡았는데,
ans * 26을 하는 것을 생각 못 했습니다.
즉 123이 들어왔을때,
1(10^2)+2(10^1)+3(10^0) 으로 계산을 하는 것 보다
1-> in -> 1
2-> in
1*10 + 2 ->12
3-> in
12*10 + 3 -> 123
전에 풀었던 문제처럼 값을 누적해나가면 메모리도 적게 쓸 수 있던 문제 였습니다.