[Programmers] 3진법 뒤집기

suhyun·2021년 10월 14일
0

백준/프로그래머스

목록 보기
8/81

문제 링크

Level1. 3진법 뒤집기

문제 풀이

1. 숫자로 처리

def solution(n):
    mod_list = []
    res = 0
    while n:
        mod = n % 3
        n = n//3
        mod_list.append(mod)

    for i in range(len(mod_list)):
        res += (mod_list[i] * pow(3, len(mod_list) - i-1))
    return res
  • 3으로 나눈 나머지만 리스트에 저장
  • (3의 거듭제곱 * 인덱스)의 방법으로 계산

2. 문자로 처리

def solution(n):
    tmp = ''
    while n:
        tmp += str(n % 3)
        n = n//3
    res = int(tmp, 3)
    return res
  • 나머지를 문자열에 더해서 연결
  • python에서 지원해주는 int(str,base)이용

필요 개념

int(str, base)

: str에는 바꾸고자하는 문자열, base에는 나타내고자하는 진법

e.g)

print(int('100',2))
print(int('200',3))
print(int('300',4))
print(int('400',5))
print(int('500',6))
print(int('1000',16))
4
18
48
100
180
4096

후기

당연하게 숫자로만 처리하려고 했는데
문자열로 처리하는 방법도 배울 수 있었다

profile
꾸준히 하려고 노력하는 편 💻

0개의 댓글