Algorithm) Codekata_Day 5
❓ Question
어떤 문자들이 담긴 배열이 들어왔을 때,
공통적으로 시작되는 단어들을 추출하기
📝 My Solution
const getPrefix = strs => { let firstStr = strs[0]; const newArr = []; for (let i = 1; i<strs.length; i++) { for (let v = 0; v<strs[i].length; v++) { if (firstStr[v] === strs[i][v]) { newArr.push(strs[i][v]) } else { firstStr = newArr.splice(0,v); console.log(firstStr) break; } } } return firstStr.join('') }
▪️ Solution review
공통되는 앞글자를 비교하기 위해서 배열에서의 첫번째 글자를 지정해주고
해당 글자를 뒤에 있는 글자들과 하나씩 비교해 준뒤
맞지 않는 글자가 있을 때, 반복문을 중지하고 지금까지 저장된 글자를
다시 firstStr에 넣어줘서 계속 비교해주게 했다.
이렇게 하면 글자는 나오긴 하는데 이상하게
join이라는 function이 없다는 오류가 나와서 몇개가 맞지 않았다.
📝 Another Solution
const getPrefix = (strs) => { let prefix = strs[0]; for(let i=1; i<strs.length; i++){ while(strs[i].indexOf(prefix) !== 0){ prefix = prefix.substring(0, prefix.length-1) } console.log(prefix); } return (prefix === undefined ? "" : prefix) }
▪️ Solution review
배열의 첫번째 글자를 비교 글자로 넣어주고,
그 글자와 뒤의 글자들을 indexOf()를 통해 비교를 하고,
-1 이 나온다면 글자를 하나씩 뒤에서 줄여나가
이 과정을 반복하는 형태로 코드가 짜져있다.
그렇게 0이 나오게 된다면 prefix를 내보내는 형태다.
이렇게 다른 글자들과 비교해서 최종으로 남은 글자를 내보내는 방식으로
문제를 풀면 되겠다.
Author And Source
이 문제에 관하여(Algorithm) Codekata_Day 5), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sstaar91/Algorithm-CodekataDay-5저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)