작성일 :

문제 링크

25881번 - Electric Bill

설명

각 고객의 전기요금을 계산하는 문제입니다.


접근법

1000KWH까지는 기본 단가, 초과분은 추가 단가를 적용합니다.

사용량에서 1000을 뺀 값이 양수이면 그만큼이 초과분이고, 나머지가 기본 구간입니다.

각 구간에 해당 단가를 곱해 합산하면 요금이 됩니다.



Code

C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;

class Program {
  static void Main() {
    var fees = Array.ConvertAll(Console.ReadLine()!.Split(), int.Parse);
    var baseFee = fees[0]; var extraFee = fees[1];
    var n = int.Parse(Console.ReadLine()!);
    for (var i = 0; i < n; i++) {
      var e = int.Parse(Console.ReadLine()!);
      var extra = Math.Max(0, e - 1000);
      var baseUse = e - extra;
      var bill = baseUse * baseFee + extra * extraFee;
      Console.WriteLine($"{e} {bill}");
    }
  }
}

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <bits/stdc++.h>
using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int a, b; 
  if (!(cin >> a >> b)) return 0;
  int n; cin >> n;
  for (int i = 0; i < n; i++) {
    int e; cin >> e;
    int extra = max(0, e - 1000);
    int baseUse = e - extra;
    int bill = baseUse * a + extra * b;
    cout << e << ' ' << bill << "\n";
  }

  return 0;
}