
😎풀이
charCodeLetters
: letters
를 모두 문자 코드로 변환
targetToCharCode
: target
을 문자 코드로 변환
- 만약,
letters
의 마지막 글자가 target
보다 문자 사전순으로 더 작다면, 문제 조건대로 letters
의 첫 문자 반환
- 이진탐색
- 이진 탐색의 결과로
target
보다 큰 최소 문자 반환
function nextGreatestLetter(letters: string[], target: string): string {
const charCodeLetters = letters.map(letter => letter.charCodeAt(0))
const targetToCharCode = target.charCodeAt(0)
if(charCodeLetters.at(-1) <= targetToCharCode) return letters[0]
let left = 0
let right = charCodeLetters.length - 1
while(left <= right) {
const mid = Math.floor((left + right) / 2)
if(charCodeLetters[mid] <= targetToCharCode) left = mid + 1
else right = mid - 1
}
return letters[left]
};