문제
여덟 자리의 양의 정수가 주어질 때, 그 안에서 연속하여 같은 숫자가 나오는 것이 없으면 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
'백준 알고리즘' 카테고리의 다른 글
<백준 알고리즘> 10569번: 다면체 (0) | 2020.08.30 |
---|---|
<백준 알고리즘> 2493번: 탑 (0) | 2020.08.06 |
<백준 알고리즘> 10156번: 과자 (0) | 2020.08.03 |
<백준 알고리즘> 2798번: 블랙잭 (0) | 2020.08.03 |
<백준 알고리즘> 2563번: 색종이 (0) | 2020.08.03 |