CodeUp 2001:最低支払


  • https://codeup.kr/problem.php?id=2001&rid=0
  • 問題の説明


    ネギパスタ店のランチはパスタと生ジュースセットが人気です.
    このコースを注文すると、当日のパスタ3種と生ジュース2種の中から1つずつ選びます.
    パスタと生ジュースの価格合計で10%の追加金額が支払われます.
    もしある日パスタと生ジュースの価格をあげたら、その日のセット料金の最小値を求めるプログラムを書いてください.

    入力


    入力は5行で構成され、各行に正の整数を書きます.
    最初の行の整数は最初のパスタの価格です.
    2行目の整数は2番目のパスタの価格です.
    3行目のエッセンスは3つ目のパスタ価格です.
    4行の整数は最初の新鮮なジュースの価格です.
    5行目の整数は2番目の新鮮なジュースの価格です.
    △すべてのパスタと生ジュースの価格は100ウォン以上2000ウォン以下だ.

    しゅつりょく


    当日セットの最低価格を少数の1位に印刷してください.

    入力例


    800
    700
    900
    198
    330

    出力例


    987.8

    コード#コード#

    #Python3
    
    p1 = float(input())
    p2 = float(input())
    p3 = float(input())
    j1 = float(input())
    j2 = float(input())
    
    #가장 작은 파스타 가격 비교
    temp1 = p2 if p1 > p2 else p1
    minp = p3 if temp1 > p3 else temp1
    
    #가장 작은 쥬스 가격 비교
    minj = j2 if j1 > j2 else j1
    
    resultP = minp+(minp*0.1)
    resultJ = minj+(minj*0.1)
    
    print(format(resultP+resultJ,".1f"))

    説明とポスト


    1、2、3ジュース1、2のわさびを1行ずつ順番に入れ、各変数に価格を含められるように変数に加えます.
    次に,パスタ中の最小価格とジュース中の最小価格を比較し,minp,minj変数にそれぞれ入れた.
    さらに10%の代金を加えて印刷します.
    以上の問題はGreedyアルゴリズムの概念を学習して最初に解決した問題である.問題自体は簡単ですが、問題を解くとき、私は貪欲な方法でコードしているかどうか分かりません...貪欲法の概念をさらに整理すべきだと思います.

    その他の質問に答える

    #Python3
    
    p1 = float(input())
    p2 = float(input())
    p3 = float(input())
    j1 = float(input())
    j2 = float(input())
    
    #파스타와 쥬스 가격을 배열에 추가
    pList = [p1, p2, p3]
    jList = [j1, j2]
    
    #오름차순 정렬
    pList.sort()
    jList.sort()
    
    resultP = pList[0]+(pList[0]*0.1)
    resultJ = jList[0]+(jList[0]*0.1)
    
    print(format(resultP+resultJ,".1f"))
    
    # sort()를 통해서 좀더 코드도 깔끔해지고, 단순하게 가장 적은 수를 찾아 금액을 구할 수 있었다.