※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 25870번 문제인 Parity of Strings이다.
문제는 아래 링크를 확인하자.

https://www.acmicpc.net/problem/25870 

 

25870번: Parity of Strings

The output consists of a single integer: print 0 (zero) if the string is even, 1 (one) if the string is odd, or 2 if the string is not even and is not odd (i.e., it is neither).

www.acmicpc.net

각 문자의 개수를 셀 배열 cnt를 만들어 문제를 간단히 해결할 수 있다.

 

만약 개수가 홀수인 문자가 있다면 그 문자열은 even일 수 없게 되고, 짝수인 문자가 있다면 그 문자열은 odd일 수 없게 된다. 이를 이용해 조건문을 잘 설정하는 것으로 문제를 해결하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
#include <string>
using namespace std;

int cnt[128];
bool even = 1, odd = 1;

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

	string s; cin >> s;
	for (auto& l : s) cnt[l]++;
	for (int i = 'a'; i <= 'z'; i++) {
		if (cnt[i]) {
			if (cnt[i] & 1) even = 0;
			else odd = 0;
		}
	}

	if (even) cout << 0;
	else if (odd) cout << 1;
	else cout << 2;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 25932 // C++] Find the Twins  (0) 2022.11.05
[BOJ 25830 // C++] Microwave Mishap  (0) 2022.11.05
[BOJ 3765 // C++] Celebrity jeopardy  (0) 2022.11.05
[BOJ 25636 // C++] 소방차  (0) 2022.11.04
[BOJ 25639 // C++] 수열과 최대 상승 쿼리  (0) 2022.11.03

+ Recent posts