코드카타

홍석현·2022년 11월 4일
0
const getPrefix = strs => {
  if(strs.length==0){
        return ''
      }
  for (i=1;i<strs.length;i++){
    for(j=0; j<strs[0].length; j++){
      
  if(strs[0][j]!==strs[i][j]){
    strs[0]=strs[0].substring(0,j);
  }
    }
  }return strs[0]
}
console.log(getPrefix(['start', 'stair', 'step']))

단어의 시작부분중 겹치는 철자만 반환하는 함수를 작성해야한다

첫 단어가 start라면 첫 단어를 기준으로 그 후에 오는 단어들의 철자를 대조하면 될것이다.

일단 for문을 돌려서 처음 strs배열의 길이를 구한다.
각 개체의 철자마다의 인덱스 값을 비교하기위해 이중 for문으로
j를 돌린다 j의 최대값은 strs의 첫번째 개체의 길이만큼으로 한다.

(겹치는 인덱스까지만 반환하기 때문에 첫 단어를 기준으로 뒤에 오는 단어가 더 길든 짧든 상관이 없다.)

그 후 strs의 0번째 개체를 재 할당한다.
strs[0]을 대조하는 개체의 철자중 공통된 철자까지만 담아서 반환한다.

느낀점

빈 배열에 대한 생각을 하지못해서 테스트시에 계속 통과하지못했다.
이중 반복문으로 돌려서 0번 인덱스를 기준으로 비교하는것까지는 잘 생각했지만 재할당에대한 생각을 못해서 중간에 풀이가 막혔었다.

위의 두가지를 다시한번 유념해서 풀어봐야겠다.

profile
Front-end to Full-stack

0개의 댓글