안녕하세요. 오늘은 얼룩말을 찾을 거예요.
https://www.acmicpc.net/problem/30454
특정 얼룩말의 줄의 개수를 세는 방법은 간단합니다.
s[0]이 '1'이면 기본값 1, 아니면 0으로 한 다음에 s[j-1]이 '0'이고 s[j]가 '1'인 j의 개수를 더해주면 됩니다.
최댓값과 그 개수를 세어주면 됩니다.
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
int N, L, i, mx = 0, cnt = 0;
cin >> N >> L;
for (i = 0; i < N; i++)
{
string s;
cin >> s;
int onecnt = 0;
if (s[0] == '1') onecnt++;
for (int j = 1; j < L; j++)
{
if (s[j - 1] == '0' && s[j] == '1')
onecnt++;
}
if (mx < onecnt)
{
mx = onecnt;
cnt = 0;
}
if (mx == onecnt) cnt++;
}
cout << mx << ' ' << cnt;
}
감사합니다.
.... 아레나때 혼자 이 문제 9번 풀다가 시간만 날리고 멘탈나가서 포기했었는데
너무 복잡하게 생각해서 못푼거였네요 풀이감사합니다.