BOJ 2798ブラックジャック


BOJ问题补丁




タイトル:ブラックジャック
問題の難易度:下
質問のタイプ:配列、完全なナビゲーション
回答時間:20分
最初の入力N,M
2番目の入力Nに対応するカードアレイ

しょかい


  • 最初の例では、5つの5 C 3のうち3つを選択します.

  • 完全なナビゲーションにより,m(max)値を超えない直線上をループし,最大値を答えに保存する.

  • 後で完全に遍歴し、重複文の答えが既存の答えより大きい場合は、max()関数を使用してより大きな値を答えに再割り当てます.

  • 繰り返し文を終了し、答えを印刷()
  • n, m = list(map(int, input().split(' ')))
    arr = list(map(int, input().split(' ')))
    
    answer = 0
    length = len(arr)
    
    print('n=', n, 'max=', m)
    print('arr=', arr)
    
    # 3개를 골라야 함 5C3
    for i in range(0, length):
        for j in range(i+1, length):
            for k in range(j+1, length):
                sum = arr[i] + arr[j] + arr[k]
                if sum <= m:
                    answer = max(answer, sum)
    
    print(answer)
    

    結果



    Why?


    VS code環境では、inputに含まれる値を確認するために一度印刷し、コメント処理を行わない場合に行うとブロックされる
    残念ながら伯俊は編集が間違っていたときにどこが間違っていたのか教えてくれなかった.

    に答える

    n, m = list(map(int, input().split(' ')))
    arr = list(map(int, input().split(' ')))
    
    answer = 0
    length = len(arr)
    
    # 주석처리
    # print('n=', n, 'max=', m)
    # print('arr=', arr)
    
    # 3개를 골라야 함 5C3
    for i in range(0, length):
        for j in range(i+1, length):
            for k in range(j+1, length):
                sum = arr[i] + arr[j] + arr[k]
                if sum <= m:
                    answer = max(answer, sum)
    
    print(answer)