반응형

문제출처

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


문제풀이

문자열을 입력받고 알파벳개수(26)개의 int형 배열을 선언한 뒤 반복문을 통해 갯수를 세어주면 되는

간단한 문제입니다. ASCII 값을 알고 있는지 확인하는 문제


소스코드

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
#include <cstdio>
#include <cstring>
int main() {
    char s[1000001];
    int cnt[26];
    scanf("%s"&s);
    memset(cnt, 0sizeof(cnt));
    int len = strlen(s);
    for(int i=0; i<len; i++) {
        if(s[i] >= 'a' && s[i] <= 'z') s[i]-='a'-'A';
        cnt[s[i]-'A']++;
    }
 
    int max=0, idx=-1;
    for(int i=0; i<len; i++) {
        if(max<cnt[s[i]-'A']) {
            max=cnt[s[i]-'A'];
            idx=i;
        }
    }
 
    int duplicateCnt=0;
    for(int i=0; i<26; i++) {
        if(max==cnt[i]) duplicateCnt++;
    }
    if(duplicateCnt==1printf("%c\n", s[idx]);
    else printf("?\n");
    return 0;
}
cs


반응형

'Algorithm' 카테고리의 다른 글

[프로그래머스 42840] 모의고사(완전탐색)  (0) 2019.04.23
[BOJ 1655] 가운데를 말해요  (0) 2019.04.16
[BOJ 2675] 문자열 반복  (0) 2019.04.15
[BOJ 13458] 시험감독  (0) 2019.04.15
[BOJ 1057] 토너먼트  (0) 2019.04.15

+ Recent posts