[Algorithm] 공통된 시작 단어 반환

JiYeon Park·2021년 1월 31일
0

Algorithm

목록 보기
4/5
post-thumbnail

문제

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

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

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

풀이

처음 풀이

  • 배열의 0번째 요소를 변수에 먼저 선언해 놓고 나머지배열의 요소를 첫번째 부터 비교하고 싶었으나, 배열의 길이도 알 수 없고 비교할 때마다 변수를 선언을 해야하는가에 대해서 고민함

해결한 풀이

  1. strs로 들어오는 매개변수의 길이가 0일 때는 0을 반환하는 조건문
  2. prefix라는 변수에 배열의 0번째 요소를 선언
  3. 반복문으로 배열의 1번째부터 배열의 길이만큼 i번째만큼 돌립니다.
  4. while 문으로 strs[i]가 prefix와 일치할때까지 substring을 통해서 뒤에서부터 한개씩 문자를 잘라서 indexOf로 비교합니다.

해결 코드

const getPrefix = strs => {
  let prefix = strs[0]
  if (strs.length === 0){
    prefix = '';
  }
  for (i = 1; i < strs.length; i++){
    // console.log(strs[i])
    while(strs[i].indexOf(prefix) !== 0){
      prefix = prefix.substring(0, prefix.length-1)
      console.log(prefix)
    }
  }
  return prefix
}

console.log(getPrefix(['flower', 'flue', 'fly'])) //'fl'
profile
열심히 공부중인 초보 개발자

0개의 댓글