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