※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 25801번 문제인 Odd/Even Strings이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/25801
어떤 문자의 개수가 하나라도 홀수개이면 true를 저장하는 bool 변수 odd와, 어떤 문자의 개수가 하나라도 짝수개이면 true를 저장하는 bool 변수 even을 찾아내 문자를 해결하자. 아래의 제출코드에서 odd와 even은 bool이 아닌 int형이지만, int는 값이 0이 아니면 true, 0이면 false로 취급되므로 구현에 문제는 없다.
주어지는 문자열의 각 문자의 개수를 세는 배열 cnt를 아래와 같이 만들면 간편하게 문제를 해결할 수 있다.
아래는 제출한 소스코드이다.
#include <iostream>
#include <string>
using namespace std;
string s;
int cnt[128];
int odd = 0, even = 0;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> s;
for (auto& l : s)cnt[l]++;
for (int i = 0; i < 128; i++) {
if (cnt[i]) {
if (cnt[i] & 1) odd++;
else even++;
}
}
if (odd && even) cout << "0/1";
else if (odd) cout << 1;
else cout << 0;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 10312 // C++] Lodê (0) | 2022.10.30 |
---|---|
[BOJ 3733 // C++] Shares (0) | 2022.10.30 |
[BOJ 25881 // C++] Electric Bill (0) | 2022.10.30 |
[BOJ 25858 // C++] Divide the Cash (0) | 2022.10.30 |
[BOJ 25894 // C++] Phoneme Palindromes (1) | 2022.10.30 |