반응형
문제
Excel Sheet Column Number - LeetCode
문제 해결 방법
- A~Z를 1~26 만드는 것은 쉽습니다. A는 아스키코드로 65이므로, 64 나 ‘@’를 뺴거나, 혹은 ‘A’+1을 한다면 숫자로 출력이 됩니다. 아래 링크를 참조.
- 자리수에 따라서 추가되는것을 고려하는것이 필요합니다.
- ZY=Z26 + Y = 2626 + 25 = 676 + 25 = 701 이므로, 뒷자리에서 부터 계산하면 자리수에 필요한 수를 얻을수 있습니다.
- 계산식 (자리수가 1이상일떄) 알파벳수 * 26^자리수
Github Link
https://github.com/eunhanlee/LeetCode_171_ExcelSheetColumnNumber_Solution.git
시간복잡도: O(n), 공간복잡도: O(1)
class Solution {
/**
* 주어진 열 제목을 해당하는 열 번호로 변환합니다.
*
* @param columnTitle 변환할 열 제목
* @return 열 번호
*/
public int titleToNumber(String columnTitle) {
char[] titleList = columnTitle.toCharArray();
int result = 0; // 최종 결과값
int power = 1; // 26의 거듭제곱을 계산하기 위한 변수
for (int i = columnTitle.length() - 1; i > -1; i--) {
int value = titleList[i] - '@'; // 현재 문자에 해당하는 숫자 값 계산
result += value * power; // 현재 자리의 값을 결과에 더함
power *= 26; // 다음 자리의 26의 거듭제곱 값을 계산하기 위해 power를 업데이트
}
return result; // 최종 결과 반환
}
}
반응형
'old > Algorithm Solving' 카테고리의 다른 글
LeetCode 1470. Shuffle the Array 자바 문제 풀이 (0) | 2023.07.21 |
---|---|
LeetCode 341. Flatten Nested List Iterator 자바 문제 풀이 (0) | 2023.07.18 |
LeetCode 28. Find the Index of the First Occurrence in a String 자바 문제 풀이 (0) | 2023.07.13 |
LeetCode 1920. Build Array from Permutation 자바 문제 풀이 (0) | 2023.07.12 |
LeetCode 62. Unique Paths 자바 문제 풀이 (0) | 2023.07.11 |