습관처럼
백준 1157 - 단어 공부 본문
https://www.acmicpc.net/problem/1157
문제 설명
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
접근 방법
대문자 변환후 알파벳 26자에 해당하는 배열에 증가를 시켜준다.
Tip : (int)'A' >> A의 아스키 코드 숫자
코드
#include <iostream>
#include <cstring>
#include <stdlib.h>
#include <cmath>
using namespace std;
string word;
int main(){
cin>>word;
int ac[26];
int maxi=-1234,idx=0;
memset(ac,0,sizeof(ac));
for(int i=0;i<word.size();i++){
if(word[i]=='\0')break;
char a = toupper(word[i]);
ac[int(a)-int('A')]++;
}
int flag=0;
for(int i=0;i<26;i++){
if(ac[i]==0) continue;
else if(maxi<ac[i]){maxi=ac[i];idx=i;flag=1;}
else if(maxi==ac[i]){
flag=0;
}
}
if(flag==1){cout<<char('A'+idx)<<"\n";}
if(flag==0){cout<<"?"<<"\n";}
}
funny algorithm 0.0 ~
'Algorithms > BOJ' 카테고리의 다른 글
백준 1912 - 연속합 (0) | 2020.04.08 |
---|---|
백준 1932 - 정수 삼각형 (0) | 2020.04.08 |
백준 2908 - 상수 (0) | 2020.04.08 |
백준 10809 - 알파벳 찾기 (0) | 2020.04.08 |
백준 11654 - 아스키 코드 (0) | 2020.04.05 |