반응형
https://www.acmicpc.net/problem/10709
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int H, W;
vector<string> JOI;
int cloud[100][100];
// 구름이 있는 경우 c, 구름이 없는 경우 .
// 모든 구름은 1분이 지날 때마다 1킬로미터씩 동쪽(오른쪽)으로 이동
// 각 구역에 구름이 몇 분 뒤에 처음으로 오는지.
// 처음에 구름이 떠있던 경우 0
void setCloud()
{
for (int i = 0; i < H; i++)
for (int j = 0; j < W; j++)
{
cloud[i][j] = -1;
}
for (int i = 0; i < H; i++)
for (int j = 0; j < W; j++)
{
for (int k = W - 1; k > 0; k--)
{
if (j >= k)
if (JOI[i][j - k] == 'c') // k분 전에 왼쪽에 구름이 있던 경우
cloud[i][j] = k;
}
if (JOI[i][j] == 'c') // 처음에 구름이 떠있던 경우
{
cloud[i][j] = 0;
continue;
}
}
}
void printCloud()
{
for (int i = 0; i < H; i++)
{
for (int j = 0; j < W; j++)
cout << cloud[i][j] << " ";
cout << endl;
}
}
int main()
{
cin >> H >> W;
for (int i = 0; i < H; i++)
{
string st;
cin >> st;
JOI.push_back(st);
}
setCloud();
printCloud();
return 0;
}
반응형
'Algorithm' 카테고리의 다른 글
[백준 1780] 종이의 개수 (0) | 2020.01.26 |
---|---|
[백준 1756] 피자 굽기 (0) | 2020.01.19 |
[백준 2823] 유턴 싫어 (0) | 2020.01.19 |
[백준 1008] A/B (0) | 2020.01.17 |
[백준 1260] DFS와 BFS (0) | 2020.01.16 |
댓글