Code Kata #5 prefix 찾아내기

Somi·2021년 6월 25일
0

CODE KATA

목록 보기
5/12
post-thumbnail

💁 문제분석

strs은 단어가 담긴 배열입니다. 공통된 시작 단어(prefix)를 반환해주세요.
예를 들어 strs = ['start', 'stair', 'step'] return은 'st'
strs = ['start', 'wework', 'today'] return은 ''

🙈 나의 코드

const getPrefix = strs => {
  let arr = [];
  for (let i = 0; i < strs.length; i++){
      for(let j = 0; j < strs[i].length; j++){
      if (strs[i][j] === strs[i+1][j]){
        arr.push(strs[i][j]);
      }
    }
  return arr.join("")
  }
//   return arr.join()
//   1. 빈 배열을 선언한다.
//   2. 배열을 순회하면서 각 요소의 첫번째 글자를 비교한다.
//   3. 만약 첫번째 글자가 같으면 빈 배열에 넣어준다.
//   4. 마지막으로 조인해서 그 값을 리턴한다.
}

첫 두단어만 비교하고 바로 arr에 넣어서 실패!

👍 운서님의 코드

const getPrefix = (strs) => {
    let prefix = strs[0];
    for(let i=1; i<strs.length; i++){
        while(strs[i].indexOf(prefix) !== 0){
            prefix = prefix.substring(0, prefix.length-1)
        }
    }
    return prefix;
}
//1. 배열의 첫번째기준이 되는 단어를 정한다.
//2. 기준이 되는 단어의 알파벳을 하나씩 꺼낸다.
//3. 배열의 1번 인덱스부터 같은 위치에 알파벳이 있는지 확인한다.
//4. while문 으로 배열들을 통으로 비교한다.
//5. substring으로 문자열열의 부분을 반환한다.
//substring()메소드는 string 객체의 시작 인덱스로 부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환합니다.

👍 종민님의 코드

const getPrefix = strs => {
    let result = ‘’;
    if(strs.length === 0) return result;
    const first = strs[0];
    for(let i = 0; i < first.length ; i++){
        const prefix = first[i];
        for(let j = 1; j < strs.length; j++){
            if(strs[j][i] !== prefix)
              return result;
        }
        result += prefix;
    }
    return result;
};

substring 알아보기

while문 알아보기

0개의 댓글

관련 채용 정보