작성
·
57
·
수정됨
0
13:04 질문이 있습니다.
방구를 뀌었을 시 상하좌우로 퍼져나간다고 문제가 전제되었을 때
1. 크레이지 아케이드의 물폭탄처럼 해당 지점의 상하좌우로 퍼져나가는지
2. 그게 아니라면 오염받은 지점 역시 다음번에 그 지점으로 부터 오염이 이어나가져 주는지는 어떻게 구분하시나요?
조금 더 직관적으로 질문을 드리자면 Connected Component로 할 경우 각 4개로 구분이 되므로
1번 상황의 경우 1번째 육지에서 2행1열에 서 뀌면 한번에 오염이 되겠지만
2번 상황의 경우엔 아무데나 뀌어도 전체가 오염이 될 것입니다.
혹시 이런 판단을 어떻게 내리시는지 여쭤봐도 될까요?
코딩테스트에서 문제에 대해서 직관적으로 이해가 항상 제일 어려운 문제인 것 같습니다. ㅜㅜ 너무 문맥 파악이 어렵네요.
ps. 추가된 질문인데 한번 방귀를 뀔 때 4방향만 오염된다고 했을 때 혹시 만약 저 상황에서 최소한의 방귀로 오염시킬 수 있는 횟수를 구하라고 한다면 추가적으로 어떤 로직이 필요할까요?
답변 2
0
혹시 이런 판단을 어떻게 내리시는지 여쭤봐도 될까요?
>> 음.. 4방향으로 뻗어나간다 = 4방향으로 방귀가 퍼져나간다로 이해를 했는데요. 4방향만 하고 끝난다면 -> 방귀는 뻗어나가지 않고 4방향으로 오염되고 중지된다. 라는 식의 지문이 있을거에요 ㅎㅎ
0
안녕하세요ㅎㅎ
.크레이지 아케이드의 물폭탄처럼 해당 지점의 상하좌우로 퍼져나가는지
>> 네 맞습니다.
2. 그게 아니라면 오염받은 지점 역시 다음번에 그 지점으로 부터 오염이 이어나가져 주는지는 어떻게 구분하시나요?
>> 제 생각에는 DFS 처럼 그 방향으로 계속해서 이어나간다라는 것 같은데요. 그럴 수도 있습니다. 다만 4방향으로 계속해서 이어나간다고 보시면 됩니다. 그니까 오른쪽으로만 뻗어나가는 것이 아닌 4방향으로 뻗어나간다로 보시면 됩니다.
추가된 질문인데 한번 방귀를 뀔 때 4방향만 오염된다고 했을 때 혹시 만약 저 상황에서 최소한의 방귀로 오염시킬 수 있는 횟수를 구하라고 한다면 추가적으로 어떤 로직이 필요할까요?
>> 완탐으로 푸시면 됩니다. 방귀한번에 -> 4방향 다 오염 된다 라는 로직을 기반으로 -> 전체좌표에서의 모든 경우의수(nC1, nC2 ... 등) 를 탐색해나가면서 최솟값을 잡으면 될것 같습니다.
이부분은 3주차 개념강의 때 배웁니다. 좋은 생각이십니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
Connected Component로 할 경우 각 4개로 구분
>> 그게 아니라 맵 기준으로
{0, 0}
{0, 0}
명쾌하신 해답 언제나 감사합니다!