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';
}
}
'Programing > 백준, 프로그래머스(C++)' 카테고리의 다른 글
[C++][백준 2852] NBA 농구 (0) | 2025.01.17 |
---|---|
[C++][백준 9017] 크로스 컨트리 (0) | 2025.01.17 |
[C++][백준 20546] 기적의 매매법 (0) | 2025.01.16 |
[C++][백준 9935] 문자열 폭발 (0) | 2025.01.16 |
[C++][백준 20437] 문자열 게임 2 (0) | 2025.01.14 |