계측 장비는 측정값을 크기가 고정된 순환 버퍼에 기록합니다. 버퍼가 가득 차면 다시
0번 칸부터 덮어쓰기 때문에, 장비에서 그대로 내려받은 배열 buffer는 오름차순으로
정렬된 값들이 어느 한 지점에서 회전된 모양이 됩니다.
예를 들어 원래 순서가 [7, 12, 19, 31, 42, 58]이었다면, 내려받은 배열은
[31, 42, 58, 7, 12, 19]처럼 보입니다. 이때 값이 가장 작은 7이 있는 인덱스 3이
기록이 시작된 지점입니다.
buffer가 주어질 때 기록 시작 지점, 즉 가장 작은 값이 있는 인덱스를 반환하는
solution(buffer) 함수를 작성하세요. 회전이 일어나지 않아 이미 오름차순이면 0을
반환합니다.
버퍼가 매우 클 수 있으므로 처음부터 끝까지 훑는 방식으로는 통과할 수 없습니다.
| buffer | 결과 | 설명 |
|---|---|---|
[31, 42, 58, 7, 12, 19] |
3 |
가장 작은 값 7의 위치 |
[3, 9, 14] |
0 |
회전되지 않음 |
[20, 4] |
1 |
마지막 한 칸만 앞으로 밀림 |
[6, 11, 25, 33, 2, 4, 5] |
4 |
가장 작은 값 2의 위치 |
1 ≤ buffer.length ≤ 200,000-1,000,000 ≤ buffer[i] ≤ 1,000,000buffer의 값은 모두 서로 다릅니다.buffer는 오름차순으로 정렬된 배열을 0회 이상 회전시킨 것입니다.시간 복잡도 목표: O(log n)
공간 복잡도 목표: O(1)
▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.