사자자리
[C언어] 백준 1371번: 가장 많은 글자 본문
https://www.acmicpc.net/problem/1371
1371번: 가장 많은 글자
첫째 줄부터 글의 문장이 주어진다. 글은 최대 50개의 줄로 이루어져 있고, 각 줄은 최대 50개의 글자로 이루어져 있다. 각 줄에는 공백과 알파벳 소문자만 있다. 문장에 알파벳은 적어도 하나 이
www.acmicpc.net
#include <stdio.h>
int main(){
char text;
int alpha[26] = {0}, max = -1;
while ((text = getchar()) != EOF){
alpha[text - 97]++;
}
for (int i = 0; i < 26; i++){
if (max < alpha[i]) max = alpha[i];
}
for (int i = 0; i < 26; i++){
if (max == alpha[i]) printf("%c", i + 97);
}
return 0;
}
초반에는 불필요한 코드들이 많아서 시간 초과가 몇 번이나 나왔다. 아래는 시간 초과가 떴을 때의 코드의 일부분이다.
while (1){
gets(text);
if (strlen(text) == 0) break;
for (int i = 0; i < strlen(text); i++){
if (text[i] != '\0') alpha[text[i] - 97]++;
}
}
한 문장씩 입력받고, 입력받은 문장을 인덱스를 이용해 훑으며 알파벳 개수를 세는 방식이었다. 이후 나는 '문장'을 입력받는다는 생각을 버리고, '알파벳 하나'를 입력받을 때마다 알파벳 개수를 세기로 했다.
'C언어 > C언어 문제' 카테고리의 다른 글
[C언어] 백준 1159번: 농구 경기 (0) | 2022.08.03 |
---|---|
[C언어] 백준 2914번: 저작권 (0) | 2022.08.03 |
[C언어] 백준 1356번: 유진수 (0) | 2022.07.31 |
[C언어] 백준 1296번: 팀 이름 정하기 (0) | 2022.07.24 |
[C언어] 백준 1259번: 팰린드롬수 (0) | 2022.07.24 |
Comments