CodeKata 03

meow·2020년 9월 2일
0

Algorithm

목록 보기
3/23

문제

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

str: 텍스트
return: 중복되지 않은 알파벳 길이 (숫자 반환)

예문

str = "abcabcabc"
return은 3
=> 'abc' 가 제일 길기 때문

str = "aaaaa"
return은 1
=> 'a' 가 제일 길기 때문

str = "sttrg"
return은 3
=> 'trg' 가 제일 길기 때문


답안

모델 답안

function getLengthOfStr(s) {
    let strArr = [];
    let prevStrArr = [];
    console.log(s)
    for (let i = 0; i < s.length; i++) {
      
      console.log('=======================', i);
      
        let ss = s.slice(i, i+1);
        console.log(' 검사 ss ==> ', ss);
        for (let j = 0; j < strArr.length; j++) {
            if (ss === strArr[j]) {
                
                if (prevStrArr.length < strArr.length) {
                    prevStrArr = strArr.slice();
                    console.log('prevStrArr에 저장', prevStrArr);
                }
                
                strArr = strArr.splice(j+1, strArr.length);
                console.log('자르고 다시 시작 strArr', strArr, j)
                             //splice arr 자르는 함수
                break;
            }
        }
        
        strArr.push(ss);
        console.log('추가한 후 strArr', strArr);
    }
    
    return Math.max(strArr.length, prevStrArr.length);
}

console.log(getLengthOfStr('taaaytts'));

구글링 답안

const getLengthOfStr = (str) => {
  let sliceStr = [];
  let lastStr = 0;

  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);

나의 답안

처음에는 앞에서부터 단어를 자르는 함수만 해서 뒤에서부터 자르는 경우를 고려하지 못했다. 현재 해결하지 못한 에러가 뜨는데... 뭘까..?

TypeError: Cannot read property 'length' of undefined

왜..? 왜 언디파인드야?...... 왜.....웨.... ㅠㅠ

수정한 답안

너무 오래 걸려서 문제점을 찾아내는 것은 포기했다. 모범 답안을 쭉 보고 위 나의 답안을 수정해서 제출했다.

profile
🌙`、、`ヽ`ヽ`、、ヽヽ、`、ヽ`ヽ`ヽヽ` ヽ`、`ヽ`、ヽ``、ヽ`ヽ`、ヽヽ`ヽ、ヽ `ヽ、ヽヽ`ヽ`、``ヽ`ヽ、ヽ、ヽ`ヽ`ヽ 、ヽ`ヽ`ヽ、ヽ、ヽ`ヽ`ヽ 、ヽ、ヽ、ヽ``、ヽ`、ヽヽ 🚶‍♀ ヽ``ヽ``、ヽ`、

0개의 댓글