본문 바로가기

알고리즘/BOJ

1157번

1157번 - 단어 공부


로직은 


1.단어 갯수 세기

2.max 값 찾기

3.max 값 여러개인지 찾기

4.max 값 출력


<정답 코드>


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
38
39
40
41
42
43
44
45
#include<iostream>
#include<string>
using namespace std;
 
int alpha[26];
int main()
{
    string s;
    cin >> s;
    for (int i = 0; i < s.size(); i++)
    {
        if (s[i] >= 'a' && s[i] <= 'z')
        {
            alpha[s[i] - 'a']++;
        }
 
        if (s[i] >= 'A' && s[i] <= 'Z')
        {
            alpha[s[i] - 'A']++;
        }
    }
    int max = -1, cnt = 0, num;
    for (int i = 0; i < 26; i++)
    {
        max = alpha[i] > max ? alpha[i] : max;
    }
    for (int i = 0; i < 26; i++)
    {
        if (alpha[i] == max)
        {
            cnt++;
            num = i;
        }
    }
 
    if (cnt > 1)
    {
        cout << "?" << endl;
    }
    else
    {
        cout << char(num + 'A'<< endl;
    }
    return 0;
}
cs


반응형

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

2098번(다시 풀어보기)  (0) 2018.02.16
1194번  (0) 2018.02.16
1316번  (0) 2018.02.15
1327번  (0) 2018.02.15
11000번  (0) 2018.02.13