https://www.acmicpc.net/problem/7576
λ¬Έμ
μ² μμ ν λ§ν λμ₯μμλ ν λ§ν λ₯Ό 보κ΄νλ ν° μ°½κ³ λ₯Ό κ°μ§κ³ μλ€. ν λ§ν λ μλμ κ·Έλ¦Όκ³Ό κ°μ΄ 격μ λͺ¨μ μμμ μΉΈμ νλμ© λ£μ΄μ μ°½κ³ μ 보κ΄νλ€.
μ°½κ³ μ 보κ΄λλ ν λ§ν λ€ μ€μλ μ μ΅μ κ²λ μμ§λ§, μμ§ μ΅μ§ μμ ν λ§ν λ€λ μμ μ μλ€. λ³΄κ΄ ν νλ£¨κ° μ§λλ©΄, μ΅μ ν λ§ν λ€μ μΈμ ν κ³³μ μλ μ΅μ§ μμ ν λ§ν λ€μ μ΅μ ν λ§ν μ μν₯μ λ°μ μ΅κ² λλ€. νλμ ν λ§ν μ μΈμ ν κ³³μ μΌμͺ½, μ€λ₯Έμͺ½, μ, λ€ λ€ λ°©ν₯μ μλ ν λ§ν λ₯Ό μλ―Ένλ€. λκ°μ λ°©ν₯μ μλ ν λ§ν λ€μκ²λ μν₯μ μ£Όμ§ λͺ»νλ©°, ν λ§ν κ° νΌμ μ μ λ‘ μ΅λ κ²½μ°λ μλ€κ³ κ°μ νλ€. μ² μλ μ°½κ³ μ 보κ΄λ ν λ§ν λ€μ΄ λ©°μΉ μ΄ μ§λλ©΄ λ€ μ΅κ² λλμ§, κ·Έ μ΅μ μΌμλ₯Ό μκ³ μΆμ΄ νλ€.
ν λ§ν λ₯Ό μ°½κ³ μ 보κ΄νλ 격μλͺ¨μμ μμλ€μ ν¬κΈ°μ μ΅μ ν λ§ν λ€κ³Ό μ΅μ§ μμ ν λ§ν λ€μ μ λ³΄κ° μ£Όμ΄μ‘μ λ, λ©°μΉ μ΄ μ§λλ©΄ ν λ§ν λ€μ΄ λͺ¨λ μ΅λμ§, κ·Έ μ΅μ μΌμλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νλΌ. λ¨, μμμ μΌλΆ μΉΈμλ ν λ§ν κ° λ€μ΄μμ§ μμ μλ μλ€.
μ λ ₯
첫 μ€μλ μμμ ν¬κΈ°λ₯Ό λνλ΄λ λ μ μ M,Nμ΄ μ£Όμ΄μ§λ€. Mμ μμμ κ°λ‘ μΉΈμ μ, Nμ μμμ μΈλ‘ μΉΈμ μλ₯Ό λνλΈλ€. λ¨, 2 ≤ M,N ≤ 1,000 μ΄λ€. λμ§Έ μ€λΆν°λ νλμ μμμ μ μ₯λ ν λ§ν λ€μ μ λ³΄κ° μ£Όμ΄μ§λ€. μ¦, λμ§Έ μ€λΆν° Nκ°μ μ€μλ μμμ λ΄κΈ΄ ν λ§ν μ μ λ³΄κ° μ£Όμ΄μ§λ€. νλμ μ€μλ μμ κ°λ‘μ€μ λ€μ΄μλ ν λ§ν μ μνκ° Mκ°μ μ μλ‘ μ£Όμ΄μ§λ€. μ μ 1μ μ΅μ ν λ§ν , μ μ 0μ μ΅μ§ μμ ν λ§ν , μ μ -1μ ν λ§ν κ° λ€μ΄μμ§ μμ μΉΈμ λνλΈλ€.
ν λ§ν κ° νλ μ΄μ μλ κ²½μ°λ§ μ λ ₯μΌλ‘ μ£Όμ΄μ§λ€.
μΆλ ₯
μ¬λ¬λΆμ ν λ§ν κ° λͺ¨λ μ΅μ λκΉμ§μ μ΅μ λ μ§λ₯Ό μΆλ ₯ν΄μΌ νλ€. λ§μ½, μ μ₯λ λλΆν° λͺ¨λ ν λ§ν κ° μ΅μ΄μλ μνμ΄λ©΄ 0μ μΆλ ₯ν΄μΌ νκ³ , ν λ§ν κ° λͺ¨λ μ΅μ§λ λͺ»νλ μν©μ΄λ©΄ -1μ μΆλ ₯ν΄μΌ νλ€.
μ΄μ 골5...?
체κ°μ λ μ΄λ €μ
n(κ°λ‘,μ΄) ,m(μΈλ‘, ν) μμμ μ£Όμν΄μΌ νλ λ¬Έμ ...
μ²μμ μ΄μ€λ°λ³΅λ¬Έ λ리면μ ν λ§ν κ° 1μΈ μ’νλ₯Ό λ°κ²¬νλ©΄ κ·Έ μ’νμ μνμ’μ°μ 1μ λ£μ΄μ£Όκ³ ,
visitedλ‘ μ€λ μ΅μ ν λ§ν μΈμ§ 체ν¬νλλ°,
κ·Έλ₯ λ°λ‘ νλ €λ²λ Έλ€!
λ§κ² νλ €λ©΄ μ²μ μ λ ₯μμ 1μΈ μ’νλ₯Ό λͺ¨λ νμ λ£μ΄μ€ λ€,
μ μ μ μΆ νΉμ§μ νμ©νμ¬ νλνλ κΊΌλ΄μ μνμ’μ°μ ν λ§ν λ₯Ό μ΅νμ£Όλ©΄ λλ€..!!
μκ³ λ¦¬μ¦ μ체λ μ΄λ ΅μ§ μμλ°
μ΄λ κ² νλ₯Ό νμ©νλ μμ΄λμ΄λ₯Ό λ μ¬λ¦¬κΈ°κ° μ½μ§ μλ€. γ γ
λ μ΄μ¬ν ν΄μΌκ²μ
μ¬μ§μ΄ λ΄μΌ λ€μ΄λ² μ½ν λ μ΄λΌ κ·Έλ°μ§ λ°±μ€ μ±μ μ΄ κ΅μ₯ν λλ¦Ό γ γ γ γ γ γ γ λ€λ€ μ΄κ³΅νμλκ°λ³΄λ€,,
λμ νμ΄
#include <iostream>
#include <string>
#include <queue>
using namespace std;
int n;
int m;
int map[1001][1001];
int dx[4] = {0, 1, 0, -1};
int dy[4] = {1, 0, -1, 0};
int step[1001][1001];
queue<pair<int, int>> q;
bool canGo(int x, int y){
if(x<0 || y<0 || x>=m || y>=n) return false;
if(map[x][y]!=0) return false;
return true;
}
void bfs(){
while(!q.empty()){
pair<int, int> a = q.front();
q.pop();
for (int i = 0; i < 4; ++i){
int nx = a.first + dx[i];
int ny = a.second + dy[i];
if(canGo(nx,ny)){
map[nx][ny] = map[a.first][a.second]+1;
q.push({nx, ny});
}
}
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
bool allTomato = true;
cin >> n >> m;
for (int i = 0; i < m; ++i){
for (int j = 0; j < n; ++j){
cin >> map[i][j];
if(map[i][j]==1){
q.push({i, j});
}
}
}
bfs();
int maxday = 0;
for (int i = 0; i < m; ++i){
for (int j = 0; j < n; ++j){
if(map[i][j]==0){
cout << -1;
return 0;
}
if(maxday < map[i][j]){
maxday = map[i][j];
}
}
}
cout << maxday - 1;
}
'π μκ³ λ¦¬μ¦ > BOJ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C++/BOJ] 11286 : μ λκ° ν (μλ£κ΅¬μ‘°) (0) | 2023.05.02 |
---|---|
[C++/BOJ] 5430 : AC (μλ£κ΅¬μ‘°) (0) | 2023.05.02 |
[C++/BOJ] 1107 : 리λͺ¨μ»¨ (μμ νμ) (0) | 2023.04.14 |
[C++/BOJ] 16236 : μκΈ° μμ΄ (bfs/dfs) (0) | 2023.04.13 |
[C++/BOJ] 2468 : μμ μμ (bfs/dfs) (0) | 2023.04.13 |