[백준 25801] Odd/Even Strings (C#, C++) - soo:bak
작성일 :
문제 링크
설명
입력으로 주어지는 문자열이 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;
}