바이너리 서치(bianry search)를 통한 숫자의 인덱스를 찾는 방식이었다.
다만 배열의 순서가 가운데서 시작되는 순환 고리 형태였다.
그래서 가장 큰 숫자의 위치를 찾아서 바이너리 서치를 진행하는 방식을 택했는데,
효율성 검사에서 스택이 터졌다.
문제의 원인은 인덱스 검사 과정에서 스택이 터지는 것으로 생각된다.
Math, indexOf
와 같은 처리가 3000번이상 호출되게 되면서 생기는 문제인것
결국 index체크하는 과정 없이 중간과 마지막 데이터의 순차정렬 상태를 체크해서 결과를 출력하도록 변경했다.
let promise = new Promise()
프로미스의 인자로는 콜백함수가 들어온다.
콜백에 인자로는 resolve, reject
두 개의 콜백이 전달되며,
resolve
는 원하는 상태로완료되었음을 나타내고
reject
는 원하는 결과는 아니지만 어떠한 이유로 완료 되었는지를 반환한다.
await키워드가 있는경우에는, 해당 promise 객체의 완료 결과를 받아와야 다음 코드라인을 실행한다.
promise가 reject되는 경우에는 변수에 해당 결과를 담거나 선언하는 것이 불가능하다.