-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
- 저번에와 같이 잘못했던 방식으로 cnt를 두고 cnt++; 지속하고 cnt 값을 반환하면 되겠다 했는데,
- 마찬가지로 단방향이 아닌 경우에 같은 날 익은 토마토가 다른 날 익은 것처럼 처리되기 때문에, 답이 산으로 가버림
- 결국 마지막에 익은 토마토 (가장 익는데 오래 걸린 토마토를 찾으면 전부 토마토가 익은 것이기 떄문에 거리 구하기랑 똑같다.)
for (int i = 0; i<n; i++) {
for (int j = 0; j<m; j++) {
cin >> board[i][j];
if (board[i][j] == 1)
Q.push({i,j});
if (board[i][j] == 0)
vis[i][j] = -1;
}
}- 그리고 위의 코드와 같이 제일 처음에 초기화 할 때, board[i][j]가 0일 때만 vis[i][j]를 -1로 초기화 해줌으로써,
- 나중에 탐색할 때 >= 0 조건을 걸어서 익을 수 없는 토마토를 거를 수 있다.
그리고 행렬 자꾸 헷갈리는데 가로길이가 m 세로길이가 n으로 주어지면 행렬을 탐색할 땐 아래와 같이 해야 한다.
for (int i = 0; i<n; i++) {
for (int j =0; j<m; j++) {
if (vis[i][j] == -1) {
cout << -1;
return;
}
ans = max(vis[i][j], ans);
}
}Reactions are currently unavailable