문제 설명
공기면과 닿은 치즈는 녹는다.
치즈가 전부 사라지는 시간과 전부 사라지기전 치즈 개수를 구하라
생각한 아이디어
공기면과 맞닿는 치즈인 것을 어떻게 판별 할 수 있을까?
- 문제 첫줄에 힌트 있음 - > 가장자리는 무조건 적으로 치즈가 존재하지 않음을 의미
- 가장 자리 부터 탐색에 1이 맞닿는 곳이면 녹을 치즈인 것을 알 수 있다.
풀이
public static int[] solution() {
int[] answer = new int[2];
int cheeseCnt = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (map[i][j] == CHEESE) {
cheeseCnt++;
}
}
}
int hour = 0;
int leftCheese = 0;
while (cheeseCnt != 0) {
hour++;
leftCheese = cheeseCnt;
cheeseCnt = melt(cheeseCnt); // bfs
}
answer[0] = hour;
answer[1] = leftCheese;
return answer;
}
'Algorithm > 백준' 카테고리의 다른 글
괄호 제거 (0) | 2023.03.09 |
---|---|
백준 - 퇴사 (0) | 2023.02.12 |
Strahler 순서 (0) | 2022.11.15 |
영우는 사기꾼? (0) | 2022.11.15 |
BOJ1931_회의실 배정 (0) | 2021.10.24 |
댓글