728x90

단계별로 풀어보기 - 문자열 - [5단계] 1157번
문제


문제 링크 : www.acmicpc.net/problem/1157
1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
입력 복사 :
> 예제 입력 1
Mississipi
> 예제 입력 2
zZa
> 예제 입력 3
z
> 예제 입력 4
baaa
CODE
#include <cstdio>
#include <string>
#include <iostream>
using namespace std;
int main() {
string str;
int alpha[26] = { 0 };
int len, max = 0, maxalpha = 0, multialpha = 0;
getline(cin, str, '\n');
len = str.length();
for (int i = 'A'; i <= 'Z'; i++) {
for (int j = 0; j < len; j++) {
if (str.at(j) == i) {
alpha[i - 65]++;
}
}
}
for (int i = 'a'; i <= 'z'; i++) {
for (int j = 0; j < len; j++) {
if (str.at(j) == i) {
alpha[i - 97]++;
}
}
}
for (int i = 'A'; i <= 'Z'; i++) {
if (max < alpha[i - 65]) {
max = alpha[i - 65];
maxalpha = i;
}
}
for (int i = 'A'; i <= 'Z'; i++) {
if (max == alpha[i - 65])
multialpha++;
}
if (multialpha == 1)
printf("%c\n", maxalpha);
else
printf("?\n");
}
결과





728x90
'Baekjoon > 단계별로 풀어보기' 카테고리의 다른 글
[BOJ/백준] 2908번 상수 C++ 문제 풀이 (0) | 2020.10.26 |
---|---|
[BOJ/백준] 1152번 단어의 개수 C++ 문제 풀이 (0) | 2020.10.26 |
[BOJ/백준] 2675번 문자열 반복 C++ 문제 풀이 (0) | 2020.10.26 |
[BOJ/백준] 10809번 알파벳 찾기 C++ 문제 풀이 (0) | 2020.09.23 |
[BOJ/백준] 11720번 숫자의 합 C++ 문제 풀이 (0) | 2020.09.22 |