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

Woochan Park님의 프로필 이미지
Woochan Park

작성한 질문수

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

3-G 와 테스트케이스 팁

[3-G] 같은 위치에 있을때 걸리는 시간

해결된 질문

작성

·

194

1

안녕하세요!

강사님께서 말씀해주신 히든케이스에서

같은 위치에 있을 경우 1초를 반환하도록 짜신것을 보았습니다.

그런데 저는 같은 위치에 있을 경우 0초라고 생각하고 코드를 제출했었거든요!

사소한것일수도 있지만..

1초라고 생각해야하는 이유가 있을 것 같은데 혹시 무엇인지 알려주실수 있나요??

답변 1

1

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

안녕하세요 Park님 ㅎㅎ

이거는 BFS를 구축할 때 처음 지점을 visited[0] = 1로 만들어놓기 때문에 1초라고 되는건데요.

자,

만약에 최단거리를 구축할 때 첫 지점을 visited = 1로 안놓고 문제에 맞춰 0초이기 때문에 0이라고 놓는다면

이런 로직이 추가가 됩니다.

if visited 로 방문했는지를 확인하는데

첫지점은 visited = 0이기 때문에 방문미처리가 되고 첫지점을 다시 방문하게 되버립니다.

그래서 그 부분을 막기 위해 로직에

이 부분이 첫지점인지

if x == 첫지점

등의 로직이 추가가 됩니다.

그래서 로직의 깔끔함을 위해서 최단거리배열을 만들 때 첫지점을 visited = 1로 만드는 것이 좋습니다.

 

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

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

감사합니다.

강사 큰돌 올림.

Woochan Park님의 프로필 이미지
Woochan Park

작성한 질문수

질문하기