
😎풀이
s 2중 순회
1-1. 각 시작점에서 문자 빈도 측정
1-2. 한 문자가 3번째 탐색되는 경우 추가 탐색 종료 후 현재 길이 반환
1-3. 현재 길이를 바탕으로 최대 길이 갱신
- 같은 문자가 3회 이상 중복되지 않는 부분 문자열의 최대 길이 반환
function maximumLengthSubstring(s: string): number {
let maxLen = 0
for(let left = 0; left < s.length; left++) {
const frequent = new Map()
let len = 0
for(let right = left; right < s.length; right++) {
const cur = s[right]
const curFrequent = frequent.get(cur) ?? 0
if(frequent.has(cur) && curFrequent >= 2) {
break
}
len++
frequent.set(cur, curFrequent + 1)
}
maxLen = Math.max(maxLen, len)
}
return maxLen
};