인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

hellooguy님의 프로필 이미지
hellooguy

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

12. 마구간 정하기(결정알고리즘)

선생님 이해가 가지 않는 부분이 있어서 질문드립니다!

작성

·

243

0

코드를 보면서 잘 이해가 안가서 질문합니다 ㅠㅠ

answer는 Math.max(answer, mid) 이렇게 해줄 필요가 없는걸까요?

count 함수의 조건을 만족한다면 항상 answer값이 더 큰 값으로 향해서 구해지는 것인지가 궁금합니다 

초반에는 쉬운 개념들이어서 알고리즘이 쭉쭉 풀렸는데 뒤로 갈수록 혼자서 풀기가 점점 힘들어지네요 흐읅

답변 1

3

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

결정알고리즘은 mid값이 답으로 가능하다면 그걸 답으로 해놓고 더 좋은 답을 향해서 가는 알고리즘입니다. 즉 나중에 답으로 가능한 mid값이 나온다면 기존 답보다는 더 좋은 답입니다. 

예를 들어 가장 가까운 두 말의 거리를 mid=2로 해서 검사해 2가 답으로 가능하다고 판별이 되면 일단 answer=2로 하고, 이분검색을 lt=3으로 바꾸어 2보다 작은 값들을 버려버리고 2보다 큰 값들 중에서 답을 다시 정하고 답으로 가능한 가 검사하기 때문에 만약 가능하다면 2보다는 더 좋은 답이겠죠. 우리는 거리의 최대값을 찾는 거니까요.

hellooguy님의 프로필 이미지
hellooguy

작성한 질문수

질문하기