알고리즘/C++
가장 많이 사용된 자릿수 C++
지휘리릭
2020. 2. 19. 19:16
처음엔 값을 인티저로 받았다. 아래와 같이 간단하게 생각했다.
각 자릿수는 0 ~ 9 까지니까 int로 되겠지 라는 멍청한 생각 ㅠ..
그런데 입력값이 100자리가 넘을 수 있다는 사실을 미처 생각하지 못해서 시간 초과가 발생했다.
while( num > 0 ){
temp = num % 10;
num = num / 10;
numArr[temp] ++;
}
이런 경우에는, 정수형으로 받을 것이 아니라 캐릭터 배열을 선언해서 스트링으로 받아야한다.
for ( i = 0 ; str[i] != '\0') 이거 참유용하게 쓰네..
#include<stdio.h>
int main() {
char str[101];
int numArr[10] = { 0 };
int max = -2147000000, ans;
scanf("%s", &str);
for (int i = 0; str[i] != '\0'; i++) {
numArr[str[i] - 48]++;
}
for (int i = 0; i < 10; i++) {
if (max < numArr[i]) {
max = numArr[i];
ans = i;
}
else if (max == numArr[i]) {
ans = (i > ans ? i : ans);
}
}
printf("%d", ans);
}