작성일 :

문제 링크

3052번 - 나머지

설명

입력으로 주어지는 10 개의 숫자들에 대하여 각 숫자를 42 로 나누었을 때, 중복되지 않는 나머지 값의 개수를 구하는 문제입니다.

이를 위해 적절한 자료구조로 C# 에서는 HashSet 을, C++ 에서는 set 을 활용하였습니다.


Code

[ C# ]

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

      var remainders = new HashSet<int>();
      for (int i = 0; i < 10; i++) {
        var num = int.Parse(Console.ReadLine()!);
        remainders.Add(num % 42);
      }

      Console.WriteLine(remainders.Count);

    }
  }
}



[ C++ ]

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

using namespace std;

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

  set<int> remainders;
  for (int i = 0; i < 10; i++) {
    int num; cin >> num;
    remainders.insert(num % 42);
  }

  cout << remainders.size() << "\n";

  return 0;
}