[백준/C++] 1157번: 단어 공부

꿈별·2022년 11월 13일
0

문제풀이

목록 보기
6/52

문제


풀이

alpabet[26] : 알파벳 사용 빈도수를 저장할 배열, 알파벳 개수가 26개라 크기도 26.
max : 배열 alpabet의 최댓값(최대 사용 빈도수)을 저장
index : 최댓값을 가지는 배열 alpabet의 인덱스를 저장
count : 값이 max인 alpabet의 요소 개수를 저장

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

int main(void) {
	int alpabet[26] = {0};
	int max=0, index=0, count = 0;
	string S;

	cin >> S;
	//카운팅
	for (int i = 0; i < S.length(); i++)
	{
		if (S[i] < 97)
			alpabet[S[i] - 65]++; //대문자
		else
			alpabet[S[i] - 97]++; //소문자
	}

	//가장 많이 사용한 알파벳 알아내기
	for (int i = 0; i < 26; i++)
	{
		if (max < alpabet[i])
		{
			max = alpabet[i];
			index = i;
		}
	}

	//? 혹은 최대 사용 알파벳 출력
	for (int i = 0; i < 26; i++)
	{
		if (max == alpabet[i]) count++;
	}
	if (count > 1) cout << "?";
	else cout << (char)(index + 65);
}

참고

0개의 댓글