알고리즘/BOJ

백준 1157번 단어 공부

꾸준함. 2018. 10. 1. 18:42

문제 링크입니다: https://www.acmicpc.net/problem/1157


문자열 처리 문제였습니다.

string을 익히기 좋은 문제인 것 같습니다!


#include <iostream>

#include <string>

using namespace std;

 

int alphabet[26];

 

int main(void)

{

        ios_base::sync_with_stdio(0);

        cin.tie(0);

        string s;

        cin >> s;

       

        char result;

        //최대 빈도 알파벳 탐색

        for (int i = 0; i < s.length(); i++)

        {

                 if ('A' <= s[i] && s[i] <= 'Z')

                 {

                         alphabet[s[i] - 'A']++;

                         if (i == 0)

                                 result = s[i];

                         else

                                 if (alphabet[s[i] - 'A'] > alphabet[result - 'A'])

                                          result = s[i];

                 }

                 else if ('a' <= s[i] && s[i] <= 'z')

                 {

                         alphabet[s[i] - 'a']++;

                         if (i == 0)

                                 result = s[i] - 'a' + 'A';

                         else

                                 if (alphabet[s[i] - 'a'] > alphabet[result - 'A'])

                                          result = s[i] - 'a' + 'A';

                 }

        }

       

        //자주 나타나는 알파벳이 여러개일 경우

        for(int i=0; i<26; i++)

                 if ((i + 'A') != result && alphabet[i] == alphabet[result - 'A'])

                 {

                         cout << "?\n";

                         return 0;

                 }

 

        cout << result << "\n";

        return 0;

}


개발환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형

'알고리즘 > BOJ' 카테고리의 다른 글

백준 7572번 간지(干支)  (0) 2018.10.01
백준 10250번 ACM 호텔  (0) 2018.10.01
백준 15594번 Out of Place  (0) 2018.10.01
백준 15593번 Lifeguards(Bronze)  (0) 2018.10.01
백준 15592번 Blocked Billboard II  (0) 2018.10.01