알고리즘/LeetCode
504. Base 7
앤테바
2022. 12. 23. 09:54
반응형
문제)
Given an integer num, return a string of its base 7 representation.
Example 1:
Input: num = 100
Output: "202"
Example 2:
Input: num = -7
Output: "-10"
Constraints:
- -107 <= num <= 107
솔루션1)
- 7진수 변환 문제
- divmod() 함수를 사용해서 몫과 나머지를 이용해서 7진수를 계산한다.
class Solution:
def convertToBase7(self, num: int) -> str:
if not num:
return "0"
base_seven = []
# 음수 케이스
positive = True if num >= 0 else False
num = abs(num)
while num:
num, remainder = divmod(num, 7)
base_seven.append(str(remainder))
# 결과 변환
base_seven.reverse()
ret = ''.join(base_seven)
if not positive:
ret = '-' + ret
return ret
솔루션2)
- 솔루션1 코드 리팩토링
class Solution:
def convertToBase7(self, num: int) -> str:
if not num:
return "0"
base_seven = []
# 음수 케이스
sign = num < 0
num = abs(num)
while num:
num, remainder = divmod(num, 7)
base_seven.append(str(remainder))
# 결과 변환
base_seven.reverse()
ret = ''.join(base_seven)
if sign:
ret = '-' + ret
return ret
반응형