Problem.1157
##Problem.1157
단어 공부
#include <stdio.h>
#include <string.h>
int main(){
int alpha[26]={0,};
// 정수형 배열을 쓰는 이유는 단어의 길이가 1000000이기 때문에 반복된
// 알파벳의 횟수가 127번을 넘어가면 CHAR형의 범위를 넘어버린다.
char temp;
int Max_comp=0;
int comp2=0;
int comp1=0;
//각 단어가 들어왔을때 대소문자 상관없이 각 문자 마다 카운트 한다.
while((temp=getchar())!=10){
if(temp>64&&temp<91){
//대문자 일때
alpha[temp-65]+=1;
}
else{
// 소문자 일때
alpha[temp-97]+=1;
}
}
//가장 많이 사용되 문자 찾는과정
for(int i=0;i<26;i++){
if(alpha[i]!=0){
Max_comp=(Max_comp>alpha[i]?Max_comp:alpha[i]);
}
}
for(int j=0;j<26;j++){
if(Max_comp==alpha[j]){
comp1=j;
comp2++;//가장 많이 사용된 문자의 갯수를 저장
}
}
if(comp2>1){
printf("?\n");
//가장 많이 사용한 문자가 2개이상 일때는 ?를 출력
}
else
printf("%c\n",comp1+65);
//가장 많이 사용한 문자가 2개 미만일때는 해당 문자 출력
}
가장 많이 사용된 문자의 갯수를 문자별로 배열에 저장하고, 가장많이 사용된 문자를 찾아 다시 비교해 주면된다. 비교 하는 과정에서 가장큰 문자는 1번만 나와야하고 2번 이상 나온다면 “?“를 출력해주어야 한다.
comments powered by Disqus