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

qnvr31p님의 프로필 이미지
qnvr31p

작성한 질문수

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

3-I

맞왜틀 질문드립니다!

작성

·

156

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

http://boj.kr/7d1b078d34894888995766119fc55780

 

아래와 같은 사고 과정을 따라 문제를 풀었습니다.

 

먼저 동생이 0에서 출발하더라도 1000초면 500,000을 넘어간다는 것을 확인했습니다.

또한 500,000 크기를 가지는 int형 배열이 약 2MB 정도의 공간만을 차지하므로

동생의 위치에 따른 시간을 먼저 broPos 배열에 저장했습니다.

ex. 동생이 5를 0초에 방문, 6을 1초에 방문, 8을 2초에 방문 ->

broPos[5] = 0, broPos[6] = 1, broPos[8] = 2

 

이후 수빈이가 bfs를 통해 탐색하되

같은 시간에 동생을 만나는 경우(broPos[next] == visited[next] - 1) 리턴후 시간 출력

동생의 지나갈 위치를 짝수초만큼 먼저 지나가는 경우 리턴 후 시간 + 짝수초 출력

동생이 500,000을 넘는 시간이 지나면 리턴 후 -1 출력

 

해당 방법으로 문제를 풀이했는데 어느 부분이 틀린걸까요?

 

답변 1

0

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

안녕하세요 ㅎㅎ

 

반례는 다음과 같습니다.

10 57

답 : 5

qn님 : 6

감사합니다.

qnvr31p님의 프로필 이미지
qnvr31p

작성한 질문수

질문하기