[leetcode 171] Excel Sheet Column Number

171. Excel Sheet Column Number

https://leetcode.com/problems/excel-sheet-column-number/

해결 과정

Z 26

AA 26 + 1

AZ 26 +26

BA 26 * 2 + 1

ZY = 26 * 26 + 25

… 식으로 생각하면서, 규칙을 찾았다.

예를 들어 “ABC” 라면, (26 * 26 * 알파벳A) + (26 * 알파벳B) + (1 * 알파벳C) = 26261 + 26*2 + 3 이 된다.

앞에 곱해지는 26은 C 를 첫 번째 자리로 생각할 때, (자릿수-1) 만큼 26을 곱한다.

코드

fun titleToNumber(s: String): Int {
  val lastIdx = s.length - 1
  var result = 0
  for(i in 0..lastIdx) {
    var num = 1
    for(j in 0 until i) {
      num *= 26
    }
    num *= (s[lastIdx-i] - 'A' + 1)
      result += num
    }
    return result
}

배운 점

  • “ABC” string s 에서 s[0]은 “A” 순간적으로 “C”를 0번째로 생각해서 왜 Accept이 안되는지 헤맷다. (자릿수랑 같이 생각하다가 헷결렸다보다) 창피하지만, 다시 실수하지 않기 위해 적는다..

Leave a comment