이분탐색 짤 때마다 헷갈리는데요
left leq? less? right인지 left= mid인지 mid+1인지
일단 이것도 헷갈리는데
헷갈리면 결정함수를 만들라고 하는데 그건 먼가요?
while (l <= r) { int mid = (l + r) / 2; if (fun()) r = mid - 1; else l = mid + 1; }
나는 항상 이렇게 짜는데 이렇게 값들이 fun 을 불만족~~~하다가 만족~~~~하는 구간인거임 이때 마지막으로 불만족을 하는 지점이 r로 나옴
조건을 만족하는 최소 x를 찾고싶다 : l은 무조건 불만족, r은 무조건 만족이라고 정해놓고 그걸 유지시키는 경계조건을 따진다
while (l <= r) { int mid = (l + r) / 2; if (fun()) r = mid - 1; else l = mid + 1; }
나는 항상 이렇게 짜는데 이렇게 값들이 fun 을 불만족~~~하다가 만족~~~~하는 구간인거임 이때 마지막으로 불만족을 하는 지점이 r로 나옴
조건을 만족하는 최소 x를 찾고싶다 : l은 무조건 불만족, r은 무조건 만족이라고 정해놓고 그걸 유지시키는 경계조건을 따진다