작성일 :

문제 링크

8714번 - Monety

설명

동전의 개수와 동전의 앞/뒷면이 주어졌을 때,

몇 개의 동전을 뒤집어야 동전들이 모두 같은 면을 향하도록 만들 수 있는지 계산하는 문제입니다.



Code

[ C# ]

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

      var n = int.Parse(Console.ReadLine()!);

      var coins = Console.ReadLine()!.Split(' ').Select(int.Parse).ToArray();

      int head = 0, tail = 0;
      foreach (var coin in coins) {
        if (coin == 0) head++;
        else tail++;
      }

      Console.WriteLine(Math.Min(head, tail));

    }
  }
}



[ C++ ]

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

using namespace std;

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

  int n; cin >> n;

  vector<int> coins(n);

  int head = 0, tail = 0;
  for (int i = 0; i < n; i++) {
    cin >> coins[i];
    if (coins[i] == 0) head++;
    else tail++;
  }

  cout << min(head, tail) << "\n";

  return 0;
}