Programing/백준, 프로그래머스(C++)

[C++][백준 10709] 기상캐스터

hye3193 2025. 1. 16. 17:00

https://www.acmicpc.net/problem/10709

 

풀이

만약 각 구역의 문자가 'c'라면 0을 출력하고, 구름이 출발했다는 의미로 구름이 지나온 시간을 0으로 설정한다

만약 각 구역의 문자가 '.'인데 구름이 지나온 시간이 0보다 작다면 구름이 출발하지 않았다는 의미이므로 -1을 출력한다

각 구역의 문자가 '.'인데 구름이 지나온 시간이 0 이상이라면 지나온 시간을 출력한다

 

위와 같이 세 케이스로 나누어 코드를 작성하였다

 

제출 코드

#include <iostream>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    int h, w;
    string input;
    cin >> h >> w;

    for (int i = 0; i < h; i++)
    {
        int cloud = -1;
        cin >> input;
        for (int j = 0; j < w; j++)
        {
            if (input[j] == 'c')
            {
                cout << 0 << " ";
                cloud = 0;
            }
            else if (cloud == 0)
                cout << -1 << " ";
            else
                cout << cloud << " ";

            if (cloud > -1) cloud++;
        }
        cout << '\n';
    }
}