[프로그래머스] 3진법 뒤집기

FFTL:)·2021년 6월 8일
0

3진법 뒤집기 ( https://programmers.co.kr/learn/courses/30/lessons/68935 )

프로그래머스 문제입니다. 10진법과 3진법에 대한 변환 방법만 알고 있다면 어렵지 않게 해결할 수 있는 문제 입니다. 저는 이를 잘 알지 못했기에 다른 분의 풀이를 보고 이해하여 제 것으로 만들었습니다.

문제 해결

  • 주어진 숫자 n을 삼진법으로 변경합니다.
  • 변경한 삼진법을 뒤로 뒤집은 뒤 해당 수를 다시 10진법으로 변경합니다.
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

=> 진법간의 변환에 대하여 생각을 해볼 수 있는 기회가 된 문제였습니다. 알고 본다면 어렵지 않은 풀이 이지만 모른다면 많은 시간이 들 것 같았습니다. 많은 문제를 풀어봐야 겠다는 생각이 들게된 문제입니다.

참고
[Python] 3진법 뒤집기

profile
생각하는 개발자가 되자!

0개의 댓글