[JS ] leetcode 코딩테스트 연습 171. Excel Sheet Column Number

zaman·2022년 2월 22일

Coding test | Leet Code

목록 보기
1/1
post-thumbnail

문제링크: 릿코드 171번

❓문제

: Given a string columnTitle that represents the column title as appear in an Excel sheet, return its corresponding column number.

for example: 
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28 
Example 1:

Input: columnTitle = "A"
Output: 1
Example 2:

Input: columnTitle = "AB"
Output: 28
Example 3:

Input: columnTitle = "ZY"
Output: 701



❗️풀이

const titleToNumber = function (s) {
  let answer = 0;
  
  // 알파벳 배열
  let arr = "abcdefghijklmnopqrstuvwxyz".toUpperCase().split("");

  for (let i = 0; i < s.length; i++) {
    answer += (arr.indexOf(s[i]) + 1) * Math.pow(26, s.length - i - 1);
  }

  return answer;
};

엑셀 시트를 생각해보면 이런식으로 돌아가는데

이걸 Math.pow()를 이용해서 구현해준다 👉 Math.pow(base, exponent): base^exponent을 반환

예를들어 AB라면
: 자리값(26)을 곱해서 반환해야 함
A ➡️ 1 (26^1) ➡️ answer = 26
: 인덱스값만 반환해 더하면 됨
B ➡️ 2
(26^0) ➡️ answer = 28

예를들어 ZY라면
Z ➡️ 26 (26^1) ➡️ answer = 676
Y ➡️ 25
(26^0) ➡️ answer = 701

예를들어 AAA라면
A ➡️ 1 (26^2) ➡️ answer = 676
A ➡️ 1
(26^1) ➡️ answer = 702
A ➡️ 1 * (26^0) ➡️ answer = 703

이렇게 결과가 나온다!

profile
개발자로 성장하기 위한 아카이브 😎

0개의 댓글