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

김현우님의 프로필 이미지
김현우

작성한 질문수

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

3-K와 문제의 단순화

3-K 질문ㅇ드립니다

해결된 질문

작성

·

60

0

결국 메인 로직은

 

  1. BFS를 돌려서 백조끼리 만날수있나 검사한다.

  2. 얼음을 만나면 얼음 위치를 저장한다

  3. 얼음을 지운다.

  4. 얼음을 만나면 얼음위치를 저장한다.

인거 같은데 queue를 2개쓰지 않고 그냥 temp 큐 한개만 얼음을 담는 용도로 사용해도 되지않나요?

답변 1

0

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

안녕하세요 현우님 ㅎㅎ

인거 같은데 queue를 2개쓰지 않고 그냥 temp 큐 한개만 얼음을 담는 용도로 사용해도 되지않나요?

>>

제 생각에 qsize 를 걸어놓고 푸시는 것을 생각하신 것 같은데요 ㅎㅎ

이 문제를 보시면 단계별로 탐색 + .인 경우에는 계속해서 탐색이라는 로직이 있기 때문에 queue 2개로 구현해야 합니다.

        for(int i = 0; i < 4; i++){
            int ny = y + dy[i];
            int nx = x + dx[i];
            if(ny < 0 || ny >= R || nx < 0 || nx >= C || visited_swan[ny][nx])continue;
            if(_map[ny][nx] == '.')swanQ.push({ny, nx});

 


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

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

감사합니다.

강사 큰돌 올림.


김현우님의 프로필 이미지
김현우

작성한 질문수

질문하기