2798号:黒いジャック[python]

881 ワード

これは白準アルゴリズムの2798題です.
  • 先にしましょう
  • 三重Forゲートを使うことにしました.学校から学んだのは、2のFor Moonから、効率が低いことです.でも現実にしておこうこれは三重For文でM以下の値の中で最大値を求める方法です.言ったように、すべての状況の数を考えます.
    N, M = map(int, input().split(" ")) # 입력
    num = list(map(int, list(input().split(" "))))
    ans = 0
    n = 1
    
    for i in num:
        for j in num[n:]:   # num[n:] 중복 제거
            tmp = num[n:]
            tmp.remove(j)
            for k in tmp:   # tmp 중복 제거
                if (i + j + k) == M:   # 같으면 탈출. 없어도 답은 나올 것 같다. 
                    ans = i + j + k
                    break
                elif ans < (i + j + k) < M: # M 보다 작고 합이 가장 큰
                    ans = i + j + k
        n += 1
    
    print(ans)
    重複を解消すれば改善される可能性があります.
    --2021-07-06--