강의

멘토링

커뮤니티

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

정재윤님의 프로필 이미지
정재윤

작성한 질문수

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

6-J

6-J 놀이공원 문제 질문

작성

·

356

0

안녕하세요 강사님.

풀이관련해서 질문인데요.

 

이분탐색으로 최소 시간을 구하는 것까지 이해했는데요.

(ret - 1)에 대해서 다시 구하는게 잘 이해가 안되서요 ㅜ.

N명이 모두 탈 수 있는 최소 시간이 ret이고,

그보다 1분 전시간에 탈 수 있는 인원을 구해서 N번 아이가 탈 때의 놀이기구 번호를 구하는 거로 이해하면 될까요?

답변 1

2

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

안녕하세요 재윤님ㅎㅎ

자 이 코드는 mid는 시간을 상징하죠?

3 3 3 이렇게 되어있을 때 (놀이기구가)

6, 7, 8초 이렇게 하면서 딱 맞는 시간을 찾습니다.

합쳐서 >= n이 되는 수로요.

 

자 근데 여기서 ret - 1을 한 이유는

처음에 m부터 시작하기 때문입니다.

m개의 놀이공원 즉, 모든 놀이공원을 다 한번씩 탄다는 가정을 넣었기 때문에 - 1을 해야 합니다.

예를 들어서.

 

3 3 3 일경우

6 > 2, 7 > 2, 8 > 2, 9 > 3

이 나오죠?

근데 9일 때 temp = m부터 시작하니 3명이 탄게 아니라 4명이 탄 걸로 인식을 할 겁니다. 코드가. 그렇기 때문에 - 1을 해서 이렇게 딱 맞는 경우인 경우 9 > 8이 되게 만드는 것입니다. 그렇게 해서 9분이 되었을 때 결과적으로 2가 나오게 하는 코드입니다.

 

제가 그림을 그려봤는데요. 첨부합니다. ㅎㅎ 참고해주세요.

image

image

또한, 해당 강의는 좀 더 설명이 좋게 리뉴얼 하도록 하겠습니다.

감사합니다.

 

정재윤님의 프로필 이미지
정재윤

작성한 질문수

질문하기