본문 바로가기
알고리즘

[알고리즘] Excel Sheet Column Number

by keel_im 2021. 2. 12.
반응형

포인트

1. map, 딕셔너리를 사용하면 간단하게 풀 수 있습니다. 또한, 파이썬에서는 ord(), chr() 
C++ 에서도 변형하여 사용할 수 있으니 참고하시면 좋습니다. 

🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. 

c++/cpp

#include <bits/stdc++.h>
using namespace std;

class Solution {
public:
    int titleToNumber(string s) {
      string standard = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
      unordered_map<char, int> map;
      for (int i=0; i<standard.size(); i++){
        map[standard[i]] = i+1;
      }
      int result = 0;
      int a = 1;
      while (s.size()>0){
        if(s.size()==1){
          result+=(map[s[0]]*a);
          s="";
        } else{
            result += (map[s[s.size()-1]]*a);
            s = s.substr(0,s.size()-1); 
            a*=26;
        }  
      }
      return result;
      
    }
};

python

class Solution:
    def titleToNumber(self, s: str) -> int:
        standard = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
        result = 0

        dict1 = {ele: idx+1 for idx, ele in enumerate(standard)}
        a = 1
        while len(s) > 0:
            if(len(s) == 1):
                result += (dict1[s[-1]]*a)
                s = ''
            else:
                result += (dict1[s[-1]]*a)
                s = s[:-1]
                a *= 26
        return result
반응형

댓글