Given a column title as appear in an Excel sheet, return its corresponding column number.
엑셀 시트에 나타나는 열 타이틀이 주어지면, 해당 열의 번호를 반환하라.
Example 1:Input: "A" Output: 1
Example 2: Input: "AB" Output: 28
Example 3: Input: "ZY" Output: 701
풀이 방법
예제로 주어진 Input과 Output을 분석해보면, 각 문자의 인덱스 별 열 번호를 공식을 만들 수 있다.
나의 경우, 26^(문자열의 길이 - 현재 문자의 인덱스) * (현재 문자의 번호) 라는 공식을 만들었고,
현재 문자의 번호는 char 타입의 문자(아스키 코드)에서 - 64를 하여 고유 번호를 얻도록 하였다.
1. 문자열을 한 글자씩 잘라서 열 번호를 구한다.
2. 위 공식으로 나온 값을 결과 값에 합산한다.
3. Math.round 함수로 반올림한 결과 값을 반환한다.
class Solution {
public int titleToNumber(String s) {
double res = 0;
for(int i=1; i<=s.length(); i++) {
char c = s.charAt(i-1);
res += Math.pow(26, s.length()-i) * (c-64);
}
return (int)(Math.round(res));
}
}
'알고리즘 > LeetCode' 카테고리의 다른 글
[JAVA] LeetCode 122 - Best Time to Buy and Sell Stock II (0) | 2020.11.22 |
---|---|
[JAVA] LeetCode 217 - Contains Duplicate (0) | 2020.11.22 |
[JAVA] LeetCode 108 - Convert Sorted Array to Binary Search Tree (0) | 2020.11.16 |
[JAVA] LeetCode 206 - Reverse Linked List (0) | 2020.11.16 |
[JAVA] LeetCode 412 - Fizz Buzz (0) | 2020.11.16 |