N자리의 자연수가 입력되면 입력된 자연수의 자릿수 중 가장 많이 사용된 숫자를 출력하는 프
로그램을 작성하세요.
예를 들어 1230565625라는 자연수가 입력되면 5가 3번 상용되어 가장 많이 사용된 숫자입니
다. 답이 여러 개일 경우 그 중 가장 큰 수를 출력하세요.
▣ 입력설명
첫 줄에 자연수가 입력됩니다. 자연수의 길이는 100을 넘지 않습니다.
▣ 출력설명
자릿수의 곱을 출력합니다.
▣ 입력예제 1
1230565625
▣ 출력예제 1
5
문자형식으로 값을 입력받는다.
전역변수에 정의한 arr배열은 크기가 10인 배열로 값이 1이라면 0번째 위치에 +1, 값이 2라면 1번째 위치에 +1을 하면서 각 숫자가 몇번 사용됐는지 확인하기 위한 배열이다.
tmp변수에 값을 저장할때 48을 빼는 이유는 값을 문자로 입력받았기 때문에 숫자 0의 아스키코드 값인 48을 빼주는것이다.
답이 여러개일때 가장 큰 수를 출력하기 위해서는 두번째 반복문 안에 if문에 크거나 같다라는 조건을 사용하면 된다.
#include <iostream>
using namespace std;
int arr[10]; // 0부터 9까지 각 숫자가 얼마나 사용됐는지
int main()
{
char c[101];
int res, max = -32767, tmp;
cin >> c;
for (int i = 0; c[i] != '\0'; i++)
{
tmp = c[i] - 48;
arr[tmp]++;
}
for (int i = 0; i < 10; i++)
{
if (arr[i] >= max)
{
max=arr[i];
res = i;
}
}
printf("%d", res);
}