반응형
https://www.acmicpc.net/problem/10709
10709번: 기상캐스터
문제 JOI시는 남북방향이 H 킬로미터, 동서방향이 W 킬로미터인 직사각형 모양이다. JOI시는 가로와 세로의 길이가 1킬로미터인 H × W 개의 작은 구역들로 나뉘어 있다. 북쪽으로부터 i 번째, 서쪽으로부터 j 번째에 있는 구역을 (i, j) 로 표시한다. 각 구역의 하늘에는 구름이 있을 수도, 없을 수도 있다. 모든 구름은 1분이 지날 때마다 1킬로미터씩 동쪽으로 이동한다. 오늘은 날씨가 정말 좋기 때문에 JOI시의 외부에서 구름이 이동해 오는 경우
www.acmicpc.net
#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 |
댓글