CafeM0ca

[BOJ]1157번 단어 공부 본문

Programming/백준

[BOJ]1157번 단어 공부

M0ca 2018. 4. 22. 03:44
반응형

이이전 문제에서 조금 바꿔서 풀었다.


제일 많이 나온 횟수(max)를 구하고 check함수를 통해 max가 두번 이상일 경우는 중복이니 ?를, 그게 아니라면 max값일때 i를 저장해 출력했다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
int main(void)
{
    std::cin.tie(NULL);
    std::cin.sync_with_stdio(false);
    std::string s;
    
    std::cin >> s;
    std::vector<int> alpha(26,0); //대문자
    for(int i=0;i<s.size();i++)
    {
        if(s.at(i) > 96//소문자
            alpha[s.at(i)-97]++;
        else
            alpha[s.at(i)-65]++
    }
    int check = 0;
    int a=0;
    int max = *std::max_element(alpha.begin(),alpha.end());
    for(int i=0;i<26;i++)
    {
        if(max == alpha.at(i))
        {
            check++;
            a = i;
        }    
    }
    if(check > 1)
        std::cout << "?";
    else
        std::cout << static_cast<char>(a+65);
    return 0;
}
 
cs


반응형
Comments