[プログラマーレベル2][Python]124国/地域の数字


[プログラマーレベル2]124カ国/地域の数字


https://programmers.co.kr/learn/courses/30/lessons/12899

問題の説明📖


124カ国あります124カ国では、数字は10進数ではなく、以下の独自のルールで表されています.
  • 124カ国には自然水しか存在しない.
  • 124国/地域は、すべての数字を表すときに1,2,4しか使用しません.
  • たとえば、124の国で使用される数値は、次のように変換されます.

    自然数nをパラメータとして指定した場合、解関数を完了し、nを124カ国で使用した数値に置き換えた値を返します.
    せいげんじょうけん
  • nは5000000000以下の自然数です.
  • I/O例

    質問へのアクセス💡


    検索
  • ルール(1、2、7)
  • 3の倍数は4で終わり(4、14、24、...)、非3の倍数は3進法で
  • を解決する.
  • 3の倍数であれば、4を書き、1(ex.9は「42」)
  • を加える.
  • 3の倍数でなければ、nを3で割って残りを使います.
  • を繰り返します.
  • 逆戻り
  • 応答文字列
  • 問題を解く💡

    def solution(n):
        answer = ''
        while n > 0:
            if n % 3 ==0 :
                answer += "4"
                n = n//3 -1
            else:
                answer += str(n % 3)
                n //= 3
        return answer[::-1]

    別の解釈💡

    def solution(n):
    	if n <= 3:
        	return '124'[n-1]
        else:
        	q, r = divmod(n-1, 3)
            return solution(q) + '124'[r]
  • divmod(a,b):aをbで割ると、シェアと残りの
  • がメタグループとして返される.