※이 설명은 공식 솔루션이 아닌 작성자의 개인적인 솔루션입니다.
한번도 구름이 나타난 적이 없다면 계속 -1을 출력하고 그 다음 구름이 나타난 시점에서 0부터 시작하여 1씩 증가시키되, 구름이 다시 나타날 경우 0으로 초기화 해주면 되는 간단한 문제입니다.
※해당 소스코드는 참고용이며, 최적화 된 공식 솔루션 소스가 아닙니다. 이 소스를 그대로 복사하여 이용, 또는 제출하는 행위에 대한 불이익은 책임지지 않습니다.
#include<iostream>
#include<string>
using namespace std;
int main()
{
int w, h;
string s[101];
cin >> w >> h;
for (int i = 0; i < w; i++) cin >> s[i];
for (int i = 0; i < w; i++)
{
bool f = false;
int t = -1;
for (int j = 0; j < h; j++)
{
if (s[i][j] == 'c') f = true, t = -1;
if (f)t++;
cout << t << " ";
}
cout << "\n";
}
}