WeCode Kata Day 3

문제

String 형인 str 인자에서 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이를 반환하라.

str: 단어, return: 중복되지 않은 알파벳 길이 (숫자 반환)

Ex)
str = "abcabcabc" return3 => 'abc' 가 제일 길기 때문
str = "aaaaa" return1 => 'a' 가 제일 길기 때문
str = "sttrg" return3 => 'trg' 가 제일 길기 때문

Thinking Algorithm

  1. 빈 새로운 문자열 newStr 선언하여 for문으로 새로운 문자열에 알파벳 push
    1-1. <조건> newStr이 이전에 있던 알파벳과 동일할 시
    1-2. newStr은 해당 알파벳의 인덱스+1번째 slice 한 것
    1-3. 1-2의 알파벳 newStr에 추가해줌
  2. 빈 배열 arr에 newStr의 길이를 push 해줌
  3. arr에 들어온 값 중 가장 큰 것 반환
    ㄴ 빈 배열이 들어왔을 때? 0을 반환해야 하므로 arr의 기본 값 0으로 설정해줌

Code

const getLengthOfStr = str => {
  let arr = [0];
  let newStr = '';

  for(let i in str) {
    if(newStr.includes(str[i])) {
      newStr = newStr.slice(newStr.indexOf(str[i])+1);
    }
    newStr += str[i];
    arr.push(newStr.length);
  }
  return Math.max(...arr);
}

좋은 웹페이지 즐겨찾기