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.)