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

NAMNAM님의 프로필 이미지
NAMNAM

작성한 질문수

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

3-H

3-H 질문드립니다.

해결된 질문

작성

·

229

0

안녕하세요 선생님. 강의 항상 잘 보고 있습니다.

Q1. 수빈이와 동생의 위치가 같을때는 고려하지 않아도 되나요?(답지를 보니까 그런 코드가 없어서 질문 드립니다.)

만약 고려하지 않아도 된다고 한다면, 8-G(12851번 문제 - 숨바꼭질2) 에서는 왜 고려해야 했나요??(제가보기엔 같은 문제 같은데요..ㅎㅎ)

Q2.

이 부분이 꼭 있어야 하나요? 만약 그렇다면 시간복잡도를 줄이기 위해 그렇게 하신건지 궁금합니다.

 

 

답변 1

0

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

안녕하세요 NAMNAM님 ㅎㅎ

Q1. 수빈이와 동생의 위치가 같을때는 고려하지 않아도 되나요?(답지를 보니까 그런 코드가 없어서 질문 드립니다.)

>> 같은 것은 다음과 같은 코드로 확인하고 있습니다. here과 k를 비교해서 최단거리를 뽑아냅니다.

    while(q.size()){
        here = q.front();  
        q.pop();
        if(here == k){
            ret = visited[k]; 
            break;
        }

Q2.

이 부분이 꼭 있어야 하나요? 네 필요합니다 ㅎㅎㅎ

이 문제를 다시 설명하면요

예제 1번.

5 17

을 봤을 때

5부터 시작해서 17이라는 지점으로 가는거죠?

5에서...

4, 6, 10 이 3가지의 경우의수를 다 생각하고

다시 4에서 3, 5, 8...

6에서 4, 7, 12 .. 등 퍼져나가는 BFS를 하는건데요.

그러다 17 == 17이 된 순간

즉, here == k가 된 순간.

우리가 채워나갔던 visited 배열을 기반으로 최단거리를 출력해야 합니다.

 

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

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

감사합니다.

강사 큰돌 올림.

 

NAMNAM님의 프로필 이미지
NAMNAM

작성한 질문수

질문하기