BOJ 문제 링크: https://www.acmicpc.net/problem/7576
N * M 크기의 배열 형태로 격자모양을 한 토마토 상자의 정보가 주어진다. 각 칸에는 0, 1, -1이 올 수있는데 각각 익지않은 토마토, 익은 토마토, 빈칸을 의미한다.
익은 토마토는 앞, 뒤, 좌, 우 4방향으로 익지 않은 토마토에게 영향을줘 다음날 익게만든다.
이러한 조건 속에서 토마토들의 정보가 주어졌을때 며칠이 지나면 토마토들이 모두 익는지 그 최소 일수를 구하면 되는 문제이다.
단, 토마토들이 전부 익는 경우가 없으면 -1를 출력한다.
bfs를 이용하면 문제를 풀 수 있지만 날짜를 계산하기 위해서는 추가적인 로직이 필요하다.
이를 위해서 앞으로 익을 토마토들의 목록을 저장하는 queue에 날짜구분자를 삽입하여 날짜를 구분할 수 있도록 한다.
코드 원본: https://github.com/sbl133/BOJ/blob/main/%237576.cpp
댓글을 통한 코드리뷰, 질문, 지적 언제든 환영입니다!
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ] 백준 1011번 Fly me to the Alpha Centauri c++ (0) | 2022.04.17 |
---|---|
[BOJ] 백준 2206번 벽 부수고 이동하기 c++ (0) | 2022.04.16 |
[BOJ] 백준 1759번 암호 만들기 c++ (0) | 2022.02.15 |
[BOJ] 백준 5430번 AC c++ (0) | 2022.02.11 |
[BOJ] 백준 1520번 내리막길 c++ (0) | 2021.11.22 |