<백준> 30822

진기명기·2025년 4월 27일

코딩테스트<C++>

목록 보기
66/212

UOSPC 세기

문제
배봉산에 살고 있는 여우는 문자열을 가지고 노는 것을 좋아한다. 여우는 특히 그중에서도 'uospc'라는 모양을 가장 좋아한다!
여우는 자신이 가진 문자열의 순서를 재배열하여 'uospc' 모양을 최대한 많이 만들려고 한다. 예를 들어 'suspicion'이라는 문자열을 재배열하면 'uospcsiin'라는 문자열을 얻을 수 있고. 'processyourpurchase'라는 문자열을 재배열하면 'uospcuospcreyrrhase'라는 문자열을 얻을 수 있다.
알파벳 소문자로만 이루어진 임의의 문자열
SS가 주어졌을 때. 똑똑한 여우가 이 문자열을 적절히 재배열하여 얻을 수 있는 'uospc'의 최대 개수를 구하여라.

입력
첫 번째 줄에 문자열의 길이인 정수
nn이 주어진다. (1n1 0001\leq n \leq 1\ 000)
두 번째 줄에 영어 알파벳 소문자로만 구성되고 길이가 nn인 문자열 SS가 주어진다.

출력
문자열
SS의 원소들을 적절히 재배열하여 만들 수 있는 'uospc'의 최대 개수를 출력한다.

각 단어가 나온 횟수를 저장하고, 다섯 개의 단어의 최솟값을 구해 공통적인 횟수를 출력한다.

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

	int n;
	cin >> n;
	int count = 0;

	int u = 0;
	int o = 0;
	int s = 0;
	int p = 0;
	int newc = 0;

	for (int i = 0; i < n; i++)
	{
		char c;
		cin >> c;

		if (c == 'u')
			u++;
		if (c == 'o')
			o++;
		if (c == 's')
			s++;
		if (c == 'p')
			p++;
		if (c == 'c')
			newc++;
			
	}

	count = min({ u, o, s, p, newc });

	cout << count;
}

0개의 댓글