BOJ 10610 30


https://www.acmicpc.net/problem/10610
1秒、256 MBメモリ
input :
  • Nは最大10^5個の数字からなり、0で始まることはありません.
  • output :
  • を作成したい数がある場合は、その数を出力します.数量が存在しない場合、出力-1は
  • である.
    条件:
  • 彼は街で見つけた数字を混ぜて、30の倍数の最大の数字
  • を作りたいと思っています.
    わけがわからず解けた...
    どうしようかな….3の倍数を使い果たした.
    3
    6
    9
    12
    15
    18
    21
    24
    27
    30
    仕事の桁数が1から9まで存在するので...どんな数字でも入れますか?これらを考えると、いくつかの例を見てみましたが、それらは降順に並んでいます.フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ
    他人のブログを見た.
    30の倍数条件
  • 日の桁数は0でなければなりません.
  • 桁の数字を合わせると3に分けられます.
  • 不思議な条件がある
    https://pacific-ocean.tistory.com/340
    だから最大の数を作って、30の倍数であることを確認すればいいだけです.
    import sys
    
    n = list(map(int, sys.stdin.readline().strip()))
    n.sort(reverse=True)
    ret = ''
    for i in n:
        ret += str(i)
    
    if int(ret) % 30 == 0:
        print(ret)
    else:
        print(-1)