728x90
알아야 할 것
1. 알파벳의 아스키 코드 정보
65~90 A~Z
97~122 a~z
2. 알파벳은 대소문자 구분없이 26가지가 있으므로
어떤 문자가 나오는지에 따라 그 cnt를 저장시켜주는 num 배열 생성
3. max값 계속해서 갱신
4. 마지막 num 배열을 탐색하며 해당 index 배열 값이 max 값과 같은 경우를 찾아 그 경우가 2 이상일 경우
가장 많이 사용된 알파벳이 여러 개 존재하는 경우이므로 ? 출력
아닐 경우 가장 많이 사용된 알파벳 정상 출력
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str;
cin >> str;
int max = -1;
int temp1 = 0;
int cnt = 0;
int num[26] = {0,};
//65 ~ 90 A~Z
//97~ 122 a~z
for (int i = 0; i < str.length(); i++){
if (str[i] < 97) //대문자
num[str[i] - 65]++;
else //소문자
num[str[i] - 97]++;
}
for (int j = 0; j < 26; j++) {
if (num[j] > max) {
max = num[j];
temp1 = j;
}
}
for (int i = 0; i < 26; i++) {
if (max == num[i])
cnt++;
}
if(cnt > 1)// 카운트 값이 같은 경우
cout << "?";
else // 겹치지 않는 경우
cout << char(65+temp1);
}
728x90
'백준 풀이' 카테고리의 다른 글
[백준/BOJ] - 2908번 c++ 풀이 (0) | 2022.11.10 |
---|---|
[백준/BOJ] - 2675번 c++ 풀이 (0) | 2022.11.09 |
[백준/BOJ] - 1546번 c++ 풀이 (0) | 2022.11.08 |
[백준/BOJ] - 1152번 c++ 풀이 (0) | 2022.11.07 |
[백준/Python3] 2738번 - 행렬 덧셈 (0) | 2022.07.24 |