작성일 :

문제 링크

14182번 - Tax

설명

소득에 따라 구간별 세율을 적용한 뒤 실수령액을 구하는 문제입니다.

1,000,000 이하는 비과세, 1,000,000 초과 5,000,000 이하는 10%, 5,000,000 초과는 20% 세금이 부과됩니다.

입력이 0이면 종료합니다.


접근법

소득 구간에 따라 세율을 적용합니다.

부동소수점 대신 정수 연산으로 처리하면 오차 없이 계산할 수 있습니다.


Code

C#

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

class Program {
  static void Main() {
    while (true) {
      var line = Console.ReadLine();
      if (line == null) break;
      var n = long.Parse(line);
      if (n == 0) break;

      if (n > 5_000_000) n = n * 8 / 10;
      else if (n > 1_000_000) n = n * 9 / 10;

      Console.WriteLine(n);
    }
  }
}

C++

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

typedef long long ll;

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

  ll n;
  while (cin >> n) {
    if (n == 0) break;
    if (n > 5'000'000) n = n * 8 / 10;
    else if (n > 1'000'000) n = n * 9 / 10;
    cout << n << "\n";
  }

  return 0;
}