[Day 5] 공통된 시작 단어 구하기

누리·2022년 10월 13일
0

CodeKata

목록 보기
5/7

📅 2022.10.08
📖 파트너 : 정관훈

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

예시

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

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

sort 메서드를 이용한 풀이

처음에는 배열의 문자열을 첫 글자 부터 비교하여 같으면 빈문자열에 더하고 아니면 break로 멈추고 문자열을 반환하는 형태로 생각하여 단순한 풀이를 작성했는데 조건이 하나 걸리는 문제로 일부만 테스트 통과가 되었다.

const getPrefix = strs => {
  let result = '';
  strs.sort();
  
  if (strs.length === 0) return result
  for(let i = 0; i <strs[0].length; i++){
    if(strs[0][i] === strs[strs.length-1][i]){
       result += strs[0][i]
    }else break;
  }
  
  return result;

}

이 코드를 짤 때 유의해야 할 점은

  • 배열의 첫 단어와 끝 단어만 비교하게 되는데 이때 겹치는 문자를 앞에서 부터 비교한다 그래서 인자로 받은 단어의 순서가 중요하다.
  • sort 메서드는 같은 문자열까지는 그대로 정렬하지만 다른문자가 있을경우 그 단어부터 비교하여 알파벳순으로 정렬되어 첫단어와 끝단어만 비교해도 조건에 위배 되지 않는다
  • 그리고 처음에 받은 인자의 배열이 없을때 빈문자열을 반환하는 조건을 추가하여야 모든 테스트에서 통과가 된다 항상 모든 조건을 생각해보자
profile
프론트엔드 개발자

0개의 댓글