작성일 :

문제 링크

25801번 - Odd/Even Strings

설명

입력으로 주어지는 문자열이 Even 문자열인지, Odd 문자열인지, 또는 둘 다 아닌지를 판별하는 문제입니다.

문자열이 Even 문자열이 되려면 모든 문자가 짝수 번 등장해야 하며,

Odd 문자열이 되려면 모든 문자가 홀수 번 등장해야 합니다.


Code

[ C# ]

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

      var str = Console.ReadLine()!;

      Dictionary<char, int> freq = new Dictionary<char, int>();
      foreach (char ch in str) {
        if (!freq.ContainsKey(ch)) freq[ch] = 0;
        freq[ch]++;
      }

      int eventCount = 0, oddCount = 0;
      foreach (var p in freq) {
        if (p.Value % 2 == 0) eventCount++;
        else oddCount++;
      }

      if (oddCount == 0) Console.WriteLine("0");
      else if (eventCount == 0) Console.WriteLine("1");
      else Console.WriteLine("0/1");

    }
  }
}



[ C++ ]

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

using namespace std;

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

  string str; cin >> str;

  unordered_map<char, int> freq;
  for (char ch : str)
    freq[ch]++;

  int eventCount = 0, oddCount = 0;
  for (auto& p : freq) {
    if (p.second % 2 == 0) eventCount++;
    else oddCount++;
  }

  if (oddCount == 0) cout << "0\n";
  else if (eventCount == 0) cout << "1\n";
  else cout << "0/1\n";

  return 0;
}