본문 바로가기
알고리즘!/백준 CLASS1

1157: 단어공부

by soeayun 2023. 7. 8.

 

#include <stdio.h>
#include <string.h>

int arr[26]; //알파벳마다 얼마나 많이 사용되었나! 일단 0으로 초기화

int main(void)
{

  char word[1000000];
  scanf("%s",word);
  int len=strlen(word);
  
  for(int i=0;i<len;i++)
    {
      if(word[i]>=97 && word[i]<=122) //소문자일때 'a' 아스키코드가 97
        arr[word[i]-97]++;
      else //대문자일때 'A' 아스키코드가 65
        arr[word[i]-65]++;        
    }
  int max=0;
  for(int i=0;i<26;i++)
    {
      if(arr[i]>max)
        max=arr[i];
    }

  int cpy=0; //index값 복사용
  int de=0; //중복되어있는지 확인
  for(int i=0;i<26;i++)
    {
      if(arr[i]==max)
      {
        cpy=i;
        de++;        
      }
    }
 
  if(de!=1) //가장 많이 사용된 알파벳이 여러개 존재하는 경우
    printf("?"); 
  else  //대문자 아스키코드가 65
    printf("%c",cpy+65);
  
   return 0;
}

참고로 아스키코드를 이용해서 문제를 풀었기 때문에 주요한 아스키코드는 알고 있는게 도움이 될 때가 있다

아스키코드

'알고리즘! > 백준 CLASS1' 카테고리의 다른 글

2884: 알람 시계  (0) 2023.07.08
10250: ACM 호텔  (0) 2023.07.08
2675: 문자열 반복  (0) 2023.07.07
2577: 숫자의 개수  (0) 2023.07.07
2920: 음계  (0) 2023.07.07