* 따닥따닥 입력받기
1.문자열[index]
cin >> s;
for(int j = 0; j < m; j++){
if(s[j] == '.')a[i][j] = -1;
else a[i][j] = 0;
}
2. s.at(index)
cin >> s;
for (int j = 0; j < x; ++j)
{
c = s.at(j);
if (c == 'c')
{
a[i][j] = 1;
v[i][j] = 0;
}
}
* 규칙발견
구름오른쪽으로 1(k)씩증가 : 0,1,2
단, 구름이잇으면(a[][nx]) 정지
-구현
for (int i = 0; i < y; ++i)
{
for (int j = 0; j < x; ++j)
{
if (a[i][j])
{
for(int k=1;k<x;++k)
{
nx = j + k;
if (nx >= x) { break;}
if (a[i][nx]) { break;}
v[i][nx] = v[i][j] + k;
}
}
}
}
#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
int x, y,nx, a[104][104],v[104][104];
char c;
string s;
int main() {
//ios_base::sync_with_stdio(0);
//cin.tie(NULL); cout.tie(NULL);
fill(&v[0][0], &v[0][0]+104*104, -1);
cin >> y>>x;
for (int i = 0; i < y; ++i)
{
cin >> s;
for (int j = 0; j < x; ++j)
{
c = s.at(j);
if (c == 'c')
{
a[i][j] = 1;
v[i][j] = 0;
}
}
}
//for (int i = 0; i < y; ++i)
//{
// for (int j = 0; j < x; ++j)
// {
// cout << a[i][j] << " ";
// }
// cout << "\n";
//}
for (int i = 0; i < y; ++i)
{
for (int j = 0; j < x; ++j)
{
if (a[i][j])
{
for(int k=1;k<x;++k)
{
nx = j + k;
if (nx >= x) { break;}
if (a[i][nx]) { break;}
v[i][nx] = v[i][j] + k;
}
}
}
}
for (int i = 0; i < y; ++i)
{
for (int j = 0; j < x; ++j)
{
cout << v[i][j] << " ";
}
cout << "\n";
}
return 0;
}
'Algorithm > boj' 카테고리의 다른 글
백준 2582 //시간문제는 초단위로 통일하라, string to int(stoi), %02d(0채우기,2칸) (0) | 2023.05.17 |
---|---|
백준 3474 //idea를 위해 table을 그려라 (0) | 2023.05.17 |
백준 17071 //bfs, flood fill, 완탐x (2) | 2023.05.11 |
백준 2870 //vector<string>정렬은 커스텀으로, string토큰화 (0) | 2023.05.04 |
백준 4659 // 문자열==비교가능 (0) | 2023.05.04 |