티스토리 뷰

처음엔 값을 인티저로 받았다. 아래와 같이 간단하게 생각했다.

각 자릿수는 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);
}
댓글