본문으로 바로가기

C032:お得な買い物 ???

category TIL/Algorithm 2024. 4. 26. 23:55

paiza カードは毎日のお買い物でポイントがたまるお得なポイントカードです。
ポイントの付与基準は商品の種類によって以下のように異なります。



ポイントは以下の手順で計算されます。

1. 商品の種類ごとの合計購入金額を計算する。
2. それぞれのポイント付与基準に基づき商品の種類ごとの付与ポイントを計算する。
3. 商品の種類ごとの付与ポイントを合計する。(100円未満は切り捨て)

買い物内訳と合計ポイントの例を見てみましょう。

商品 1: 食料品 200 円
商品 2: 書籍 240 円
商品 3: 食料品 120 円
商品 4: その他 460 円
商品 5: 書籍 240 円
商品 6: 衣類 3200 円

食料品合計 320 円 → 15 ポイント
書籍合計 480 円 → 12 ポイント
衣類合計 3200 円 → 64 ポイント
その他合計 460 円 → 4 ポイント => 合計ポイント  95 ポイント
このように購入した商品の種類と金額のリストが与えられるので、その買い物で付与されるポイントの合計を求めてください。

評価ポイント10回のテストケースで、正答率、実行速度、メモリ消費量をはかり得点が決まります。
より早い回答時間で提出したほうが得点が高くなります。
  1. 複数のテストケースで正しい出力がされるか評価(+50点)
  2. 解答までの速さ評価(+50点)
入力される値入力は以下のフォーマットで与えられます。

Nv_1 p_1v_2 p_2...v_N p_N

・入力の 1 行目に購入した商品の総数を表す N が与えられます。
・続く N 行目のうち i 行目 (1 ≦ i ≦ N) に商品の種類を表す整数 v_i および商品の金額を表す整数 p_i がこの順に半角スペース区切りで与えられます。
  ・v_i について、0 は食料品、1 は書籍、2 は衣類、3 はその他を表します。
・入力は合計で N + 1 行からなり、入力値最終行の末尾に改行が1つ入ります。


それぞれの値は文字列で標準入力から渡されます。標準入力からの値取得方法はこちらをご確認ください
期待する出力与えられた買物額に対し paiza ポイントがいくつ付くかを整数値で出力してください。

出力の末尾に改行を 1 つ入れ、余計な文字、空行を含んではいけません。
条件すべてのテストケースで以下の条件を満たします。


・1 ≦ N ≦ 1000
・各 i (1 ≦ i ≦ N) について
 ・0 ≦ v_i ≦ 3
 ・10 ≦ p_i ≦ 10000
 ・p_i は必ず 10 の倍数
入力例1
6
0 200
1 240
0 120
3 460
1 240
2 3200
出力例1
95
入力例2
24
1 4750
2 2860
2 8420
1 4520
0 2450
1 3540
1 4960
1 590
3 2160
3 9160
1 7900
3 8730
0 9450
1 8940
1 8680
0 4530
0 4420
1 2320
3 7960
0 2110
0 2020
2 3650
0 6280
2 3270
出力例2
3590

0

 

内訳

基づき

種類ごとの合計

ポイントの付与基準(ふよ)부여

a=int(input())
# print(a)
check_list=[list(map(int,input().split())) for i in range(a)]
# print(check_list)

point = 0
for category, price in check_list:
    
    if category == 0:
        rate = 5
    elif category == 1:
        rate = 3
    elif category == 2:
        rate = 2
    elif category == 3:
        rate = 1

    point += (price//100) * rate

print(point)

'TIL > Algorithm' 카테고리의 다른 글

C133:雷危険地域  (0) 2024.04.28
C092:工場のベルトコンベア  (0) 2024.04.27
C094:国民の税金  (0) 2024.04.25
C059:パリティチェック  (0) 2024.04.24
C079:カードを集める  (0) 2024.04.23