#1157
[문제]
[코드]
#include <stdio.h>
int main() {
char word[1000000];
int cnt[27] = {0, };
int max = 0;
int index = 0;
scanf("%s", word);
for (int i = 0; word[i] != '\0'; i++) {
if (word[i] >= 'a' && word[i] <= 'z') word[i] -= 32;
cnt[word[i] - 'A']++;
}
for (int i = 0; i < 26; i++) {
if (max < cnt[i]) {
max = cnt[i];
index = i;
}
else if (max == cnt[i])
index = -1;
}
if (index != -1) printf("%c\n", index + 'A');
else printf("?\n");
return 0;
}
[설명]
입력받을 문자열 word, 각 알파벳 별로 카운트 세는 cnt를 선언하고 cnt와 값 비교를 위한 max값과 index값을 0으로 설정해준다.
반복문으로 입력받은 word 문자열을 처음부터 끝까지 훑으면서 소문자로 입력된 값을 대문자로 변환하여 해당하는 대문자의 cnt 값에 +1을 해준다.
다시 반복문을 사용하여 0으로 설정한 max을 이용해서 위에서 처리한 cnt값들과 하나씩 비교를 하며 제일 큰 max값을 가진 index를 구한다.
여기서, max 값과 cnt 값이 같은 경우에는 index를 -1로 설정해준다.
마지막으로 index값이 -1이 아닌 경우에는 구한 index에 A에 해당하는 아스키값을 더해서 원하는 문자를 출력하도록 하고 -1인 경우에는 ?를 출력하도록 한다.
'C > Baekjoon' 카테고리의 다른 글
[BOJ] SISS 겨울방학 스터디 - 4주차 (0) | 2022.01.22 |
---|---|
[BOJ] SISS 겨울방학 스터디 - 3주차 (0) | 2022.01.14 |
[BOJ] SISS 겨울방학 스터디 - 2주차 (0) | 2022.01.08 |
[BOJ] 1주차 - #1330 (0) | 2022.01.02 |
[BOJ] 1주차 - #1152 (0) | 2022.01.02 |
댓글