코드카타 5일차

김승수·2022년 12월 23일
0

문제

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

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

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

풀이

  let min=10000;
  let minIdx=0;
  if(!strs.length)
    return "";
  for(let i=0;i<strs.length;i++){
    if(strs[i].length<min)
    {
      min=strs[i].length;
      minIdx=i;
    }
  }
  let minString=strs[minIdx];

    let temp=minString;
  for(let j=0;j<strs.length;j++){
    if(!strs[j].startsWith(temp)){
      temp=temp.substr(0,temp.length-1);
      j=0;
    }
  }
  return temp;
  }

해석

  1. 배열의 요소 중 제일 짧은 값을 구함
  2. for문을 이용하여 starsWith를 통해 겹치는게 있는지확인
  3. substr를 통해 잘라서 템프에 넣기
  4. temp 반환

주의할점

  1. substr를 통해 자르고 다시 포문을 돌려야하기때문에 j 값을 0으로 만들어서 새로돌려야함
  2. 겹치는게 없을시 빈배열 반환해야하는데 따로 할 필요없이 그냥 if문 하나로 해결

다시한번 기억해야할 함수

substr()

  • string.substr(start, length)
    substr() 함수는, 파라미터로 입력받은 start index부터 length 길이만큼 string을 잘라내어 반환하는 함수입니다..
    start = 시작할 인덱스
    length = 자를 길이

startsWith

  • string.startsWith( searchString, length )
    startsWith()는 문자열이 특정 문자열로 시작하는지 확인한다.
    searchString = 검색할 문자열, 필수요소
    length = 어디까지 검색할지 정함 , 값이 없으면 문자열 전체로 정함

후기

수시로 코드카타 벨로그 작성한거 함수 둘러보면서 잊지말자
자바스크립트 공부 좀 더 많이 하자

profile
외부형 확장뇌

0개의 댓글