[leetcode 171] Excel Sheet Column Number
171. 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