3진법 뒤집기 ( https://programmers.co.kr/learn/courses/30/lessons/68935 )
프로그래머스 문제입니다. 10진법과 3진법에 대한 변환 방법만 알고 있다면 어렵지 않게 해결할 수 있는 문제 입니다. 저는 이를 잘 알지 못했기에 다른 분의 풀이를 보고 이해하여 제 것으로 만들었습니다.
def solution(n):
answer = 0;
string = "";
while n>0:
now = n%3; #나머지를 이용하여 삼진법의 수를 역순으로 구해냅니다.
n = n//3; #n도 실제로 나누어주어 다음 삼진법의 수를 구할 수 있는 준비를 해 줍니다.
string += str(now); #구해진 now를 string에 이어붙여줍니다.
#이는 0이 나올수 있으므로 String으로 하였습니다.
#위에서 구해진 삼진법 수는 이미 역순으로 뒤집혀있는 삼진법 수입니다. 해당 수의 각 자리수에 3**i 를 곱해주어 십진법으로 변환을 하여줍니다.
for i in range(len(string)):
answer += int(string[len(string)-(i+1)]) * 3**i;
return answer
=> 진법간의 변환에 대하여 생각을 해볼 수 있는 기회가 된 문제였습니다. 알고 본다면 어렵지 않은 풀이 이지만 모른다면 많은 시간이 들 것 같았습니다. 많은 문제를 풀어봐야 겠다는 생각이 들게된 문제입니다.