Notice
250x250
Recent Posts
Recent Comments
Link
넘치게 채우기
[LeetCode] 168. Excel Sheet Column Title 본문
728x90
반응형
https://leetcode.com/problems/excel-sheet-column-title/description/
문제 유형 : 문자열 처리
문제 난이도 : Easy
문제
Given an integer columnNumber, return its corresponding column title as it appears in an Excel sheet.
For example:
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
정수 columnNumber가 주어집니다. 엑셀시트처럼 번호에 대응하는 알파벳 문자열를 반환하시오.
풀이
만약 N이 27 보다 작으면, 그냥 수를 char로 바꿔서 반환하면 된다.
그게 아니라면, 26으로 나눠본다. 나머지가 0이라면, Z라는 뜻이므로 Z를 문자열에 추가한다.
나머지가 0이 아닌경우, 나머지에 대응하는 문자를 문자열에 추가한다.
그리고 26으로 나눈다.
columnNumber가 0이하가 될때까지 반복하면 문자열이 거꾸로 채워져있다.
문자열을 뒤집어서 반환해주면 된다.
풀이
C++
class Solution {
public:
string convertToTitle(int columnNumber) {
int n = columnNumber;
if (n < 27) {
return string(1, 65 + (n - 1) % 26);
}
string c = "";
while(n > 0) {
if(n % 26 == 0) {
c+= 90;
n -= 1;
} else {
c += 65 + n%26 - 1;
}
n /= 26;
}
reverse(c.begin(), c.end());
return c;
}
};
Python3
class Solution:
def convertToTitle(self, columnNumber: int) -> str:
n = columnNumber
c = ""
if n < 27:
return chr(n + 64)
while n > 0:
if n % 26 == 0:
c += 'Z'
n = n // 26
n -= 1
else:
c += chr(n % 26 + 64)
n = n // 26
return c[::-1]
Java
class Solution {
public String convertToTitle(int columnNumber) {
int n = columnNumber;
StringBuilder c = new StringBuilder();
if (n < 27) {
return Character.toString((char) (n + 64));
}
while (n > 0) {
if (n % 26 == 0) {
c.append('Z');
n = n / 26;
n--;
} else {
c.append((char) (n % 26 + 64));
n = n / 26;
}
}
return c.reverse().toString();
}
}
728x90
반응형
'PS > LeetCode' 카테고리의 다른 글
[LeetCode] 97. Interleaving String (0) | 2023.08.25 |
---|---|
[LeetCode] 3. Longest Substring Without Repeating Characters (0) | 2023.08.23 |
[LeetCode] 459. Repeated Substring Pattern (0) | 2023.08.21 |
[LeetCode] 209. Minimum Size Subarray Sum (0) | 2023.08.20 |
[LeetCode] 15. 3Sum (0) | 2023.08.19 |