본문 바로가기
코딩테스트/BOJ

1157번 단어 공부

by 의정부핵꿀밤 2021. 12. 12.
728x90

구현 유형~

일단 냅다 코드~

 

#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;

int main()
{
    string str;
    int arr[26]={0};
    int max=0, max_index;
    int count=0; //최대 사용 문자가 한 개인지
    cin>>str;
    
    
    //대문자 : 65-90, 소문자 : 97-122
    for(int i=0;i<str.length();i++)
    {
        int n=str[i];
        if(str[i]<97) //대문자
        {
            arr[n-65]++;
        }
        else //소문자
        {
            arr[n-97]++;
        }
    }

    for(int i=0;i<26;i++)
    {
        if(arr[i]>max)
        {
            max=arr[i];
            max_index=i;
        }
    }
    
    for(int i=0;i<26;i++)
    {
        if(arr[i]==max)
        {
            count++;
        }
    }

    if(count>1)
    {
        cout<<"?";
    }
    else
    {
        cout<<(char)(max_index+65);
    }
    return 0;
}

아스키 코드로 구현하기

그냥 배열에 인덱스가 알파벳으로 생각하고, 대문자는 65빼기, 소문자는 97뺴기해서 인덱스 찾기

다 구하고 가장 많이 쓴 알파벳 인덱스랑 횟수 구하기

그 후 배열 돌면서 여러갠지 확인하고 여러개면 ?, 아니면 65더해서 문자로 출력하기

끝!

728x90

'코딩테스트 > BOJ' 카테고리의 다른 글

4673번 셀프 넘버  (0) 2021.12.15
2750번 수 정렬하기  (0) 2021.12.14
1152번 - 단어의 개수  (0) 2021.12.11
DP > 이친수 (2193번)  (0) 2021.09.05
DP > 오르막 수 (11057번)  (0) 2021.09.04

댓글