문제

여덟 자리의 양의 정수가 주어질 때, 그 안에서 연속하여 같은 숫자가 나오는 것이 없으면 1을 출력하고, 있으면 같은 숫자가 연속해서 나오는 구간 중 가장 긴 것의 길이를 출력하는 프로그램을 작성하라. 

예를 들어 세 개의 숫자 12345123, 17772345, 22233331이 주어졌다고 하자. 12345123은 연속하여 같은 숫자가 나오는 것이 없으므로 1을 출력하고, 17772345는 7이 세 개 연속하여 나오므로 3을 출력하며, 22233331의 경우에는 2가 세 개, 3이 네 개 연속해서 나오므로 그 중 큰 값인 4를 출력하여야 한다.  

입력

첫째 줄부터 셋째 줄까지 각 줄에 하나씩 세 개의 여덟 자리 양의 정수가 주어진다.

출력

첫째 줄에서 셋째 줄까지 한 줄에 하나씩 각 입력된  수 내에서 같은 숫자가 연속하여 나오는 가장 긴 길이를 입력 순서대로 출력한다.

예제 입력 1

12345123
17772345
22233331

예제 출력 1

1
3
4

더보기

Solution

#include<stdio.h>

int main(void)
{
	for(int t=0;t<3;t++)
	{
		int arr[8], length=1, max=1;

		for(int i=0;i<8;i++)
			scanf("%1d", &arr[i]);
		for(int i=1;i<8;i++)
		{
			length=arr[i]==arr[i-1]?length+1:1;
			max=length>max?length:max;
		}

		printf("%d\n", max);
	}

	return 0;
}
728x90

+ Recent posts