BOJ : 30 [10610]

2374 ワード

1.質問


ある日、ミルコは偶然街で羊水Nを見た.ミルコは30という数字を尊敬しているので、街で見つけた数字を混ぜて、30の倍数で最大の数字を作りたいと思っています.
ミルコが作成したい数を計算するプログラムを作成するのを助けます.
ソース:https://www.acmicpc.net/problem/10610

2.アイデア

  • mine
  • 30の倍数:各ビット数を加算して3に分け、1つのビット数は024579182である.
  • 降順ソートにより、最低価格となる.
  • 30の倍数であれば最値、または-1出力
  • である.

    3.コード


    mine
    n = list(input())
    n.sort(reverse=True)
    sum = 0
    for i in n:
        sum += int(i)
    if sum % 3 == 0 and '0' in n:
        print(''.join(n))
    else:
        print(-1)