Algorithm/백준
백준 - 치즈
whyWhale
2023. 2. 12. 15:15
문제 설명
공기면과 닿은 치즈는 녹는다.
치즈가 전부 사라지는 시간과 전부 사라지기전 치즈 개수를 구하라
생각한 아이디어
공기면과 맞닿는 치즈인 것을 어떻게 판별 할 수 있을까?
- 문제 첫줄에 힌트 있음 - > 가장자리는 무조건 적으로 치즈가 존재하지 않음을 의미
- 가장 자리 부터 탐색에 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;
}