카테고리 없음
코드업 2821:가장 긴 막대기의 길이는?
티들
2023. 9. 25. 22:58
문제 설명
세종이는 길이가 n이고 각 부분이 흰색 또는 검은색으로 칠해진 나무 막대가 있다.
각 부분의 길이는 최소 1이고 각 색깔의 길이는 1의 배수이다.
이 나무 막대를 원하는 부분을 잘라 하나의 막대기를 만들려고 한다.
잘린 조각을 연결하여 막대를 만들 수는 없다.
같은 색깔로 만들 수 있는 가장 긴 막대의 길이를 구하는 프로그램을 작성하시오.

입력
첫 번째 줄에는 나무의 길이 n이 주어진다.
두 번째 줄에는 각 부분의 색깔을 나타내는 길이가 n인 문자열 s가 주어진다.
[입력값의 정의역]
1 <= n <= 1,000
s_i = { 1, 0 } (1=검은색, 0=흰색)
출력
한 가지 색으로 만들 수 있는 가장 긴 막대의 길이를 출력한다.
입력 예시
10
0100111010
출력 예시
3
나의 코드
#include <stdio.h>
int main()
{
int n, i, max=0, count=0; // 변수 선언
char stick[1000], color;
scanf("%d", &n); // 입력
scanf("%s", stick);
color = stick[0]; // 인덱스 0번을 color에저장
for(i=0;i<n;i++) // n만큼 반복
{
if(color == stick[i]){ // 색깔이 같으면 카운트 증가
count++;
if(max<count) max = count; // 최댓값이면 저장
}
else {
count = 1; // 색깔이 다르면 카운트 1로초기화
color = stick[i]; // 컬러를 변경
}
}
printf("%d", max); // 최댓값 출력
return 0;
}