해결된 질문
작성
·
37
0
http://boj.kr/1d314bd66a6f4215bbf41a31546770a6
하나의 벽을 제거하여 얻을 수 있는 가장 넓은 방의 크기
이 로직을 어떻게 구현해야 할지 모르겠습니다..
답변 2
0
안녕하세요 ㅎㅎ
visited 배열을 true, false 가 아닌 숫자형태로 만들어서 특정 지역의 visited[y][x] = 3 이런 값을 가지게 만든 다음 -> 해당 visited 값을 기반으로 각 영역의 최대값을 해시맵처럼 넣는 것이죠.
mp[3] = 4;
mp[4] = 10;
이렇게 한다음 해당 해시맵을 이용해서 특정 조건에 따라 더해서 넓은 방의 크기를 구해보시겠어요?
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. brigade98님.
해당 문제는 성곽의 방 크기를 탐색하고, 벽 하나를 허물었을 때 얻을 수 있는 최대 방 크기를 구해야 합니다. 이 문제를 해결하기 위해서는 다음과 같은 방법을 사용할 수 있습니다.
DFS 또는 BFS 사용: 처음 모든 방을 탐색하여 각 방의 크기를 구합니다. 여기서는 DFS(깊이 우선 탐색)나 BFS(너비 우선 탐색)를 사용할 수 있습니다. 이 과정에서는 이미 존재하는 구역을 색칠하듯이 방문 체크를 통해 처리합니다.
벽 제거 시뮬레이션: 각 벽을 하나씩 시뮬레이션으로 허물어봅니다. 이때 허물어진 벽에 의해 합쳐질 수 있는 방을 찾아 새로 계산한 방의 크기를 측정합니다.
최대 크기 갱신: 모든 벽에 대해 위 과정을 반복하며 얻을 수 있는 최대 방 크기를 갱신합니다.
아래는 해당 문제와 관련된 유사한 질문 링크입니다:
이러한 접근법으로 문제를 해결할 수 있으니 코드를 작성할 때 참고해보세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
넵 감사합니다!