-
3진법 뒤집기프로그래밍/알고리즘 2021. 3. 27. 15:27
풀이
def n_ary(n, base): result = [] while n > 0: n, r = divmod(n, base) # 몫이 없어질 때까지 나누기 result.append(r) # 나머지를 result에 추가 return ''.join(map(str, reversed(result))) # join 함수를 사용해 result를 뒤집고 하나의 문자열로 바꾼다. def solution(n): b3 = n_ary(n, 3) # n_ary에 10진수와 진법을 보냄 b3 = b3[::-1] # 리턴된 문자열을 뒤집는다. return int(b3, 3) # int의 base를 사용해 10진수로 바꾼다.
divmod는 몫과 나머지를 리턴해준다.
int의 두번째인자인 base를 사용하면 진법을 쉽게 바꿀 수 있음
다른 사람 풀이
def solution(n): tmp = '' while n: tmp += str(n % 3) n = n // 3 answer = int(tmp, 3) return answer
728x90반응형LIST