작성일 :

문제 링크

31280번 - ФАКИР

설명

마술사가 자신의 마법 모자에서 ‘모든 색깔의 쥐’ 를 적어도 한 마리씩 꺼내기 위해 필요한,

최소한의 쥐 마리 수를 계산하는 문제입니다.


쥐들은 회색, 흰색, 검은색 그리고 다채로운 색 의 쥐들이 있습니다.


마술사가 모든 색깔의 쥐를 ‘적어도 한 마리씩’ 꺼내려면, 적어도 한 색깔을 제외한 모든 색깔의 쥐들을 전부 꺼낸 후,

남은 한 색깔의 쥐 중 한 마리를 더 꺼내야 합니다.

이 때, 가장 적은 수의 쥐를 가진 색깔을 제외한 모든 색깔의 쥐들을 꺼내고, 마지막으로 그 색깔의 쥐 한마리를 더 꺼내면 됩니다.

이렇게 하면 모든 색깔의 쥐를 적어도 한마리씩 꺼낸 것이 보장됩니다.


입력으로 각 색깔의 쥐 수 a, b, c, d 를 받습니다.

최소한의로 필요한 쥐의 수는 a + b + c + d - min(a, b, c, d) + 1 으로 계산됩니다.

여기서, min(a, b, c, d)가장 적은 수의 쥐를 가진 색깔의 쥐 수 를 의미하고,

이 값을 전체 쥐의 수에서 빼면, 나머지 세 색깔의 쥐들을 모두 꺼낸 수가 됩니다.

이제, 여기에 1 을 더하면, 마지막으로 남은 색깔의 쥐 한 마리를 더 꺼내, 모든 색깔의 쥐를 적어도 한 마리씩 꺼낸 것이 됩니다.


최종적으로, 계산된 최소한의 쥐 마리 수를 출력합니다.



Code

[ C# ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
namespace Solution {
  class Program {
    static void Main(string[] args) {

      var inputs = Console.ReadLine()!.Split(' ').Select(int.Parse).ToArray();
      int a = inputs[0], b = inputs[1], c = inputs[2], d = inputs[3];

      var minimumMice = inputs.Sum() - inputs.Min() + 1;

      Console.WriteLine(minimumMice);

    }
  }
}



[ C++ ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <bits/stdc++.h>

using namespace std;

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

  int a, b, c, d; cin >> a >> b >> c >> d;

  int minimumMice = a + b + c + d - min({a, b, c, d}) + 1;
  cout << minimumMice << "\n";

  return 0;
}