본문 바로가기
알고리즘

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

by Kwoncorin 2020. 5. 27.
728x90

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

 

10709번: 기상캐스터

문제 JOI시는 남북방향이 H 킬로미터, 동서방향이 W 킬로미터인 직사각형 모양이다. JOI시는 가로와 세로의 길이가 1킬로미터인 H × W 개의 작은 구역들로 나뉘어 있다. 북쪽으로부터 i 번째, 서쪽��

www.acmicpc.net

 

1. 문제 설명

 

HxW 구역에 대해 구름이 있는지 (c) 없는지(.)가 주어지고 동쪽으로 구름이 1씩 이동한다고 하였을 때 구름이 몇 분 후에 뜨는지를 표시한다. 단, 구름이 아예 뜨지 않는 다면 -1을 출력한다.

 

string으로 입력을 받아 각 인덱스의 문자가 c일 경우 0을 출력하고 base index로 잡는다.

인덱스의 문자가. 일 경우 현재 열에 base index가 존재할 시 현재 인덱스에서 base index를 뺀 값을 출력하고, 존재하지 않을 경우 -1을 출력한다.

 

2. 코드

#include <iostream>
#include <string>

using namespace std;

int main()
{
    
    int H,W;
    
    cin >> H >> W;

    
    for(int x=0;x<H;x++)
    {
        string cloud;
        
        cin >> cloud;
        
        int b_index=-1;
        
        
        for(int y=0;y<W;y++)
        {
            if(cloud[y]=='c')
            {
                b_index=y;
                cout << "0 ";
            }
            else
            {
                if(b_index==-1)
                    cout <<"-1 ";
                else
                    cout << y-b_index <<" ";
            }
        }
        cout <<"\n";
    }

    return 0;
}
728x90