본문 바로가기
카테고리 없음

[Python] 월간 코드 챌린지 시즌1 : 3진법 뒤집기

by 으녜 2021. 4. 5.
728x90

programmers.co.kr/learn/courses/30/lessons/68935

 

코딩테스트 연습 - 3진법 뒤집기

자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수

programmers.co.kr

 

문제 


자연수 n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하시오.

 

[제한사항]

  • n은 1 이상 100,000,000 이하인 자연수입니다.

[예시]

 

코드 및 풀이


 

1 ) n이 0보다 클 동안 3으로 divmod() 반복 (3으로 나눈 몫은 n에, 나머지는 mod에 저장)

*divmod() : 몫과 나머지를 구할 수 있는 함수

2 ) ternary에 나머지를 string 형태로 저장(진법 표현 시 마지막 나머지부터 작성하므로, 그대로 넣어주면 앞 뒤 반전되어 저장됨)

3 ) 내장 함수 int(str, base)를 통해 10진법으로 표현 후 return

*int(): base진법으로 표현된 str을 10진법 숫자로 변환 (두 번째 인자의 default값이 10진수이므로 생략 시 10진수로 변환)

728x90