๐Ÿ“ฆ Chango/๐Ÿฅ‘ BOJ ๋‹จ๊ณ„๋ณ„๋กœ ํ’€์–ด๋ณด๊ธฐ

[BOJ][C++] ๋ฐฑ์ค€ 1157๋ฒˆ : ๋‹จ์–ด ๊ณต๋ถ€

์„ ๋‹ฌ 2021. 10. 5. 19:24
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/1157

 

1157๋ฒˆ: ๋‹จ์–ด ๊ณต๋ถ€

์•ŒํŒŒ๋ฒณ ๋Œ€์†Œ๋ฌธ์ž๋กœ ๋œ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ์ด ๋‹จ์–ด์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ ์•ŒํŒŒ๋ฒณ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‹จ, ๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š”๋‹ค.

www.acmicpc.net

 

๋ฌธ์ œ

์•ŒํŒŒ๋ฒณ ๋Œ€์†Œ๋ฌธ์ž๋กœ ๋œ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ์ด ๋‹จ์–ด์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ ์•ŒํŒŒ๋ฒณ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‹จ, ๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์•ŒํŒŒ๋ฒณ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ๋‹จ์–ด์˜ ๊ธธ์ด๋Š” 1,000,000์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์ด ๋‹จ์–ด์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ ์•ŒํŒŒ๋ฒณ์„ ๋Œ€๋ฌธ์ž๋กœ ์ถœ๋ ฅํ•œ๋‹ค. ๋‹จ, ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ ์•ŒํŒŒ๋ฒณ์ด ์—ฌ๋Ÿฌ ๊ฐœ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ?๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

#include <iostream>
#include <algorithm>

using namespace std;

int main () {
    
    int alphabet[26] = {0};
    string word;
    cin >> word;
    
    //์•ŒํŒŒ๋ฒณ ๋ฐฐ์—ด์— ๊ฐ ์•ŒํŒŒ๋ฒณ์ด ๋‚˜์˜จ ํšŸ์ˆ˜ ์ €์žฅ (๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์—†์ด)
    for(int i=0; i<word.length(); i++){
        if(word[i] < 'a')
            alphabet[word[i] - 'A']++;
        else
            alphabet[word[i]-'a']++;
    }
    
    //๊ฐ€์žฅ ๋งŽ์ด ๋‚˜์˜จ ์•ŒํŒŒ๋ฒณ์˜ ์ธ๋ฑ์Šค ๊ตฌํ•˜๊ธฐ
    int max=0, max_index=0;
    for(int i=0; i<26; i++){
        if(max < alphabet[i]){
            max = alphabet[i];
            max_index = i;
        }
    }
    
    //์•ŒํŒŒ๋ฒณ ๋ฐฐ์—ด ์ •๋ ฌํ•ด์„œ ์ œ์ผ ๋งŽ์ด๋‚˜์˜จ ํšŸ์ˆ˜[26] ์™€ ๋‘๋ฒˆ์งธ๋กœ ๋งŽ์ด ๋‚˜์˜จ ํšŸ์ˆ˜[25]๊ฐ€ ๊ฐ™์œผ๋ฉด ? ์ถœ๋ ฅ
    sort(alphabet, alphabet+26);
    if(alphabet[25] == alphabet[24]){
        cout << "?";
    }
    else { //์•„๋‹ˆ๋ผ๋ฉด ์ตœ๋Œ“๊ฐ’์˜ ์ธ๋ฑ์Šค ์ถœ๋ ฅ
        cout << (char)(max_index+'A');
    }
    
    return 0;
}
๋ฐ˜์‘ํ˜•