소프트웨어에 대한 모든 것

504. Base 7 본문

알고리즘/LeetCode

504. Base 7

앤테바 2022. 12. 23. 09:54
반응형

문제)

504. Base 7

 

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

 

반응형

'알고리즘 > LeetCode' 카테고리의 다른 글

1476. Subrectangle Queries  (0) 2022.12.23
2465. Number of Distinct Averages  (0) 2022.12.23
173. Binary Search Tree Iterator  (0) 2022.12.23
496. Next Greater Element I  (0) 2022.12.18
2043. Simple Bank System  (0) 2022.12.17
Comments