Programming/Baekjoon

백준 1157 단어공부 [c++]

fishersheep 2022. 1. 11. 16:03
반응형
#include <iostream>
#include<algorithm>
#include<string>
using namespace std;

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

	string str;	//문자열을 입력받을변수
	int arr[26] = { 0, };	//각알파벳의 갯수를 저장하기 위한 배열(알파벳은26개존재)
	int maxNum=0;	//가장많은 알파벳을 찾기위한 변수
	char result;	//결과출력을 위한 변수
	cin >> str;		//문자열입력

	for (int i = 0; i < str.length(); i++)	//입력한 문자열 길이만큼 반복
	{
		if (str[i] >= 'a')	//입력한 문자열의 첫알파벳부터 소문자인지 확인
			arr[str[i] - 'a']++;	//소문자이면 a를 빼서 해당 알파벳의 위치에 1을 더한다.
		else
			arr[str[i] - 'A']++;	//대문자인경우
	}
	
	for (int i = 0; i < 26; i++)	
	{
		if (maxNum == arr[i])	//가장많은 알파벳의 갯수가 중복된다면 ?를 결과값에 넣는다
			result = '?';
		else if (arr[i] > maxNum)	
		{
			maxNum = arr[i];
			result = 'A' + i;	//대문자로 출력하기 위해서 A를 더하고 알파벳의 위치를 알수있는 i를 더한다.
		}
	}
	cout << result;

	return 0;
}
반응형

'Programming > Baekjoon' 카테고리의 다른 글

백준 1977 완전제곱수 [c++]  (0) 2022.01.13
백준 2738 행렬덧셈 [c++]  (0) 2022.01.12
백준 10951 A+B [c++]  (0) 2022.01.10
백준 1312 소수 [c]  (0) 2022.01.08
백준 1789 수들의합 [c++]  (0) 2021.09.09