[자바스크립트 알고리즘] 여러 개의 문자열 원소를 확인하고, 공통된 시작단어 반환하기

eunjin·2020년 12월 4일
0

알고리즘 공부

목록 보기
4/7

1.문제

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


**예시**

strs = ['start', 'stair', 'step']
return은 'st'

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

2. 풀이

Array.prototype.every()는 배열 안의 모든 요소가 주어진 판별 함수를 통과하는지 테스트하여 true 또는 false를 반환하는 메서드다. 이 메서드를 이용하면 세 개 이상의 값을 동시에 비교할 수 있다.
주어진 배열에서 단어 한 개를 뽑아서, 앞 글자부터 for문을 돌면서 나머지 단어들도 순서대로 같은 글자를 가지고 있는지 확인하는 방법으로 문제를 풀었다. 조건에 부합하지 않으면 for문을 탈출했고, 조건에 부합하면 해당 글자를 하나씩 prefix라는 변수의 문자열 값에 붙여 주었다.


strs = ['start', 'stair', 'step']

const getPrefix = strs => {
  let prefix = ""
  let standardWord = strs.pop()
  if(strs.length){
    for(let i=0; i<standardWord.length; i++){
      if(!strs.every(str=>str[i] === standardWord[i])) break;
      prefix += standardWord[i];
    }
  }
  return prefix
}

console.log(getPrefix(strs))
profile
빵굽는 프론트엔드 개발자

0개의 댓글