공통된 시작 단어(prefix) 찾기

군밤먹으면서코딩·2021년 6월 25일
0

알고리즘

목록 보기
10/14
post-thumbnail

문제

strs은 단어가 담긴 배열입니다.
공통된 시작 단어(prefix)를 반환해주세요.

예를 들어
strs = ['start', 'stair', 'step']
return은 'st'

strs = ['start', 'wework', 'today']
return은 ''

답안

const getPrefix = strs => {
   let answer = [];
  let n = 0;
  for(let i =0; i<strs.length;i++){
    for(let j=0;j<strs.length-1;j++){
      if(strs[i][n] === strs[j+1][j]){

        answer.push(strs[n][j]);
        n++;
      }else{
        return answer.join('');
      }
     
    }
   
  }
  if(answer[0] === ''){
    return '';
  }else{
    return answer.join('');
  }
 
}
  • 처음엔 두번째 요소의 prefix를 검사하려 j+1을 해줬었는데, 자꾸 에러가 나 확인해 보니 배열의 길이를 초과해 버려 나는 오류였다.

  • 이를 해결하기 위해 전체 배열 길이-1을 해주니 두번째 요소부터 검사할 수 있는 j+1이 가능했다.

  • n이라는 변수를 줘서 계속 첫번째 요소와 나머지 요소의 글자들을 비교해준다.

  • 빈 배열에 조건과 일치하는 값들을 push 해준다.

0개의 댓글