μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- DP
- κ·Έλννμ
- ꡬν
- μ°μ μμν
- μν
- νλ‘κ·Έλλ¨Έμ€
- LIS
- λλΉμ°μ νμ
- λ³ν©μ λ ¬
- λ°±μ€
- 그리λ
- νμ΄μ¬
- λ¨Έμ§μνΈ
- κΉμ΄μ°μ νμ
- λ€μ΄λλ―Ήνλ‘κ·Έλλ°
- db
- μ λ ¬
- μ€λΈμ
- κ·Έλν
- ν°μ€ν 리μ±λ¦°μ§
- DFS
- λμ ν©
- μκ³ λ¦¬μ¦
- skala1κΈ°
- SQL
- λμ κ³νλ²
- BFS
- skala
- λ°μ΄ν°λ² μ΄μ€
- μμνμ
- Today
- Total
πππ°πΈ π£πΆπ΅ π΄π΅π¦π’π₯πΊ
[λ°±μ€] 7576λ²: ν λ§ν - C++ λ³Έλ¬Έ
λ¬Έμ
μ² μμ ν λ§ν λμ₯μμλ ν λ§ν λ₯Ό 보κ΄νλ ν° μ°½κ³ λ₯Ό κ°μ§κ³ μλ€. ν λ§ν λ μλμ κ·Έλ¦Όκ³Ό κ°μ΄ 격μ λͺ¨μ μμμ μΉΈμ νλμ© λ£μ΄μ μ°½κ³ μ 보κ΄νλ€.

μ°½κ³ μ 보κ΄λλ ν λ§ν λ€ μ€μλ μ μ΅μ κ²λ μμ§λ§, μμ§ μ΅μ§ μμ ν λ§ν λ€λ μμ μ μλ€. λ³΄κ΄ ν νλ£¨κ° μ§λλ©΄, μ΅μ ν λ§ν λ€μ μΈμ ν κ³³μ μλ μ΅μ§ μμ ν λ§ν λ€μ μ΅μ ν λ§ν μ μν₯μ λ°μ μ΅κ² λλ€. νλμ ν λ§ν μ μΈμ ν κ³³μ μΌμͺ½, μ€λ₯Έμͺ½, μ, λ€ λ€ λ°©ν₯μ μλ ν λ§ν λ₯Ό μλ―Ένλ€. λκ°μ λ°©ν₯μ μλ ν λ§ν λ€μκ²λ μν₯μ μ£Όμ§ λͺ»νλ©°, ν λ§ν κ° νΌμ μ μ λ‘ μ΅λ κ²½μ°λ μλ€κ³ κ°μ νλ€. μ² μλ μ°½κ³ μ 보κ΄λ ν λ§ν λ€μ΄ λ©°μΉ μ΄ μ§λλ©΄ λ€ μ΅κ² λλμ§, κ·Έ μ΅μ μΌμλ₯Ό μκ³ μΆμ΄ νλ€.
ν λ§ν λ₯Ό μ°½κ³ μ 보κ΄νλ 격μλͺ¨μμ μμλ€μ ν¬κΈ°μ μ΅μ ν λ§ν λ€κ³Ό μ΅μ§ μμ ν λ§ν λ€μ μ λ³΄κ° μ£Όμ΄μ‘μ λ, λ©°μΉ μ΄ μ§λλ©΄ ν λ§ν λ€μ΄ λͺ¨λ μ΅λμ§, κ·Έ μ΅μ μΌμλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νλΌ. λ¨, μμμ μΌλΆ μΉΈμλ ν λ§ν κ° λ€μ΄μμ§ μμ μλ μλ€.
μ λ ₯
첫 μ€μλ μμμ ν¬κΈ°λ₯Ό λνλ΄λ λ μ μ M,Nμ΄ μ£Όμ΄μ§λ€. Mμ μμμ κ°λ‘ μΉΈμ μ, Nμ μμμ μΈλ‘ μΉΈμ μλ₯Ό λνλΈλ€. λ¨, 2 ≤ M,N ≤ 1,000 μ΄λ€. λμ§Έ μ€λΆν°λ νλμ μμμ μ μ₯λ ν λ§ν λ€μ μ λ³΄κ° μ£Όμ΄μ§λ€. μ¦, λμ§Έ μ€λΆν° Nκ°μ μ€μλ μμμ λ΄κΈ΄ ν λ§ν μ μ λ³΄κ° μ£Όμ΄μ§λ€. νλμ μ€μλ μμ κ°λ‘μ€μ λ€μ΄μλ ν λ§ν μ μνκ° Mκ°μ μ μλ‘ μ£Όμ΄μ§λ€. μ μ 1μ μ΅μ ν λ§ν , μ μ 0μ μ΅μ§ μμ ν λ§ν , μ μ -1μ ν λ§ν κ° λ€μ΄μμ§ μμ μΉΈμ λνλΈλ€.
ν λ§ν κ° νλ μ΄μ μλ κ²½μ°λ§ μ λ ₯μΌλ‘ μ£Όμ΄μ§λ€.
μΆλ ₯
μ¬λ¬λΆμ ν λ§ν κ° λͺ¨λ μ΅μ λκΉμ§μ μ΅μ λ μ§λ₯Ό μΆλ ₯ν΄μΌ νλ€. λ§μ½, μ μ₯λ λλΆν° λͺ¨λ ν λ§ν κ° μ΅μ΄μλ μνμ΄λ©΄ 0μ μΆλ ₯ν΄μΌ νκ³ , ν λ§ν κ° λͺ¨λ μ΅μ§λ λͺ»νλ μν©μ΄λ©΄ -1μ μΆλ ₯ν΄μΌ νλ€.
2667λ²: λ¨μ§λ²νΈλΆμ΄κΈ° λ¬Έμ , 4963λ²: μ¬μ κ°μ λ¬Έμ μ μ μ¬νκ² ν μ μλ€.
λ€λ§ μΈμ ν μμμ μλ₯Ό μΈλ μμ λ¬Έμ μ λ€λ₯΄κ² μ΄ λ¬Έμ λ BFSλ‘ νΌλ€. μμμ 보κ΄λλ ν λ§ν λ€μ μνλ₯Ό μ λ ₯λ°μ λ€, μ΅μ ν λ§ν μ μ’νλ₯Ό pairμλ£νμ κ°λ queueμ pushνλ€. μΈμ ν κ³³μ μμ§ μ΅μ§ μμ ν λ§ν κ° μ‘΄μ¬νλ©΄ λͺλ²μ§Έλ‘ λ°©λ¬Έλμλμ§(λ μ§) κ°μ λ°κΏμ£Όκ³ , ν΄λΉ μ’νλ₯Ό queueμ pushνμ¬ λͺ¨λ λ Έλμ λκΉμ§ λ°©λ¬Έν λ κΉμ§ BFSλ₯Ό μ€ννλ€.
λ§μ½ μ΅μ§ μμ ν λ§ν κ° μ‘΄μ¬νλ©΄ -1μ, λͺ¨λ μ΅μλ€λ©΄ κ°μ₯ λ§μ§λ§μ μ΅μ λ μ§κ° μΈμ μΈμ§ μΆλ ₯ν΄μ£Όλ©΄ λλ€.
μ½λ
#include <cstdio>
#include <queue>
#define MAX 1001
using namespace std;
int tomato[MAX][MAX];
void BFS();
int dx[] = { 1, -1, 0, 0 };
int dy[] = { 0, 0, 1, -1 };
int m, n;
queue<pair<int, int> > q;
int main(void) {
scanf("%d %d", &m, &n);
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= m; j++) {
scanf("%d", &tomato[i][j]);
}
}
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= m; j++) {
if(tomato[i][j] == 1) {
q.push(pair<int, int>(i, j));
}
}
}
BFS();
int day = 0;
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= m; j++) {
if(tomato[i][j] == 0) {
printf("-1\n");
return 0;
}
else {
day = (day > tomato[i][j] ? day : tomato[i][j]);
}
}
}
printf("%d\n", day - 1);
return 0;
}
void BFS() {
while(!q.empty()) {
int x = q.front().second;
int y = q.front().first;
q.pop();
for(int i = 0; i < 4; i++) {
if(x + dx[i] < 1 || x + dx[i] > m || y + dy[i] < 1 || y + dy[i] > n) continue;
if(tomato[y + dy[i]][x + dx[i]] == 0) {
tomato[y + dy[i]][x + dx[i]] = tomato[y][x] + 1;
q.push(pair<int, int>(y + dy[i], x + dx[i]));
}
}
}
}
'μ½λ©ν μ€νΈ μ€λΉ > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 1991λ²: νΈλ¦¬ μν - C++ (0) | 2022.01.05 |
---|---|
[λ°±μ€] 2178λ²: λ―Έλ‘ νμ - C++ (0) | 2022.01.04 |
[λ°±μ€] 4963λ²: μ¬μ κ°μ - C++ (0) | 2021.12.27 |
[λ°±μ€] 2667λ²: λ¨μ§λ²νΈλΆμ΄κΈ° - C++ (0) | 2021.12.24 |
[λ°±μ€] 2331λ²: λ°λ³΅μμ΄ - C++ (0) | 2021.12.23 |