본문 바로가기
Algorithm

[프로그래머스] 3진법 뒤집기 (JS, Python)

by YGSEO 2021. 1. 26.
728x90

JS

function solution(n) {
    let answer = n.toString(3).split("").reverse().join("");;
    return parseInt(answer, 3);
}

toString 메서드로 3진법표현으로 만들고 split으로 쪼갠후, reverse, 다시 join으로 합치고,

parseInt 함수로 3진법 표현을 다시 10진법 값인 정수로.


Python

구글링해보니 파이썬에는 2,8,10,16 진수 외에 다른 n 진수는 내장함수가 없다고 한다.

 

notation = '0123456789ABCDEF' # 16진수
def numeral_system(number, base):
  q, r = divmod(number, base)
  n = notation[r]
  return numeral_system(q, base) + n if q else n

print(numeral_system(10,2))
# output
# 1010
notation = '0123456789ABCDEF' # 16진수
def numeral_system(number, base):
  q, r = divmod(number, base)
  n = notation[r]
  return numeral_system(q, base) + n if q else n


def solution(n):

    answer = list(numeral_system(n, 3))
    answer.reverse()
    answer = ''.join(answer)
    return int(answer,3)

numeral_system 함수로 받은 결과물(str)을 list로 받아서 character별로 각각의 element로 나눠준다음 reverse메서드로 뒤집어준다음 join함수로 다시 합치고 int함수로 다시 10진법으로 표현


ref

 

 

728x90

댓글