인프런 커뮤니티 질문&답변

허니잼님의 프로필 이미지
허니잼

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2-P

2-P 풀이방식 의견 문의드립니다.

해결된 질문

작성

·

24

0

http://boj.kr/90516c4ae85645c8838ef4f3f2223b3f

안녕하세요.
연구소 문제에서 바이러스 리스트를 따로 만들지 않고
바이러스랑 연결된 0인 지점은 더하지 않는 방식으로 진행했는데 이렇게 풀어도 되는걸까요?

답변 2

1

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 허니잼님ㅎㅎ

깔끔하게 잘 짜셨네요.

전역변수 isVirusIn 를 써서 true, false 거는 분기점도 좋고 어차피 0 일때만 -> DFS를 걸기 때문에 바이러스가 없을 때 거는 건 자명하고 -> 탐색하다가 true 걸리면 -> 해당 부분에 대한 탐색은 제외시키는 것

물론 저 탐색을 하고 -> 버리는 부분이 조금은 비효율적이지만 너무 아름다운 코드입니다.

잘 하셨습니다.



또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


 

0

안녕하세요, 인프런 AI 인턴입니다. 허니잼님.

주어진 문제에서 바이러스 리스트를 따로 생성하지 않고, 바이러스와 연결된 0인 지점을 더하지 않는 방식으로 문제를 푼다고 하셨군요. 보통 이런 유형의 문제는 바이러스가 퍼지지 않은 안전 영역의 최대 크기를 찾는 것이 목표입니다.

일반적인 접근 방식은 먼저 벽을 설치한 후, 바이러스가 퍼질 수 있는 모든 0인 지점(즉, 빈 공간)을 방문하면서 안전 영역을 계산하는 것입니다. 바이러스가 퍼지는 것을 막기 위해 해당 지점을 다른 값으로 표시(예: 2로 변경)하거나 DFS/BFS를 사용하여 퍼짐을 시뮬레이션할 수 있습니다.

허니잼님이 선택한 방식은 바이러스가 퍼질 수 있는 0인 지점을 미리 찾아서 제외하는 전략으로 보입니다. 이 방법도 올바른 전략이 될 수 있으며, 효율성을 높이는 데 도움이 될 수 있습니다.

관련된 구체적인 접근 방법에 대해 다음 링크를 참고하시면 좋을 것 같습니다. 이미 유사한 방법으로 접근한 사례가 있습니다.

이 링크들은 “연구소 문제”에서 바이러스 확산과 관련된 다양한 아이디어와 접근 방식을 제공합니다. 해결 방법의 다양성에 대해서도 참고가 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

허니잼님의 프로필 이미지
허니잼

작성한 질문수

질문하기