- str: 텍스트 return: 중복되지 않은 알파벳 길이 (숫자 반환)
- 예를 들어, str = "abcabcabc" return 은 3 => 'abc' 가 제일 길기 때문
- str = "aaaaa" return 은 1 => 'a' 가 제일 길기 때문
- str = "sttrg" return 은 3 => 'trg' 가 제일 길기 때문
빈 배열 생성하고, 변수 선언 후 그 값을 0으로 할당한다.
const getLengthOfStr = (str) => {
let sliceStr = [];
let lastStr = 0;
입력받은 인자의 길이만큼 for문을 돌리고,
만약 sliceStr 배열에 str[i]가 포함되어있지 않다면 포함시킨다.
그리고 lastStr이 sliceStr의 길이보다 작으면, lastStr = sliceStr의 길이와 같게 한다.
for (let i = 0; i < str.length; i++) {
if (sliceStr.indexOf(str[i]) === -1) {
sliceStr.push(str[i]);
if (lastStr < sliceStr.length) {
lastStr = sliceStr.length;
}
}
else {
sliceStr = sliceStr.slice(sliceStr.indexOf(str[i]) + 1);
sliceStr.push(str[i]);
}
}
return lastStr;
};
var str = "sttrg";
getLengthOfStr(str);
✔️ 이번 문제는 너무 어려워서 어떻게 시작할 지부터 한참 고민했다. 아직도 완벽하게 이해하지 못해서 (sliceStr.indexOf(str[i]) + 1) 이부분에 대해 조금 더 공부 후 다시 추가수정 해야겠다.