
😎풀이
- 좌측, 우측 끝 인덱스 생성
- 우측 인덱스를 감소 시키며, 좌측 인데스와의 색상 비교
2-1. 다른 색상이라면, 두 인덱스 거리 계산
- 좌측 인덱스를 증가 시키며, 우측 인덱스와의 색상 비교
3-1. 다른 색상이라면, 두 인덱스 거리 계산
- 두 최대 거리를 비교하여 더 긴 거리를 반환
function maxDistance(colors: number[]): number {
const n = colors.length
let left = 0
let right = n - 1
let maxDist = 0
while(left < right) {
if(colors[left] === colors[right]) {
right--
continue
}
maxDist = right - left
break
}
left = 0
right = n - 1
while(left < right) {
if(colors[left] === colors[right]) {
left++
continue
}
return Math.max(maxDist, right - left)
}
return 0
};