strs은 단어가 담긴 배열입니다. 공통된 시작 단어(prefix)를 반환해주세요.
예를 들어 strs = ['start', 'stair', 'step'] return은 'st'
strs = ['start', 'wework', 'today'] return은 ''
const getPrefix = strs => {
let arr = [];
for (let i = 0; i < strs.length; i++){
for(let j = 0; j < strs[i].length; j++){
if (strs[i][j] === strs[i+1][j]){
arr.push(strs[i][j]);
}
}
return arr.join("")
}
// return arr.join()
// 1. 빈 배열을 선언한다.
// 2. 배열을 순회하면서 각 요소의 첫번째 글자를 비교한다.
// 3. 만약 첫번째 글자가 같으면 빈 배열에 넣어준다.
// 4. 마지막으로 조인해서 그 값을 리턴한다.
}
첫 두단어만 비교하고 바로 arr에 넣어서 실패!
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)
}
}
return prefix;
}
//1. 배열의 첫번째기준이 되는 단어를 정한다.
//2. 기준이 되는 단어의 알파벳을 하나씩 꺼낸다.
//3. 배열의 1번 인덱스부터 같은 위치에 알파벳이 있는지 확인한다.
//4. while문 으로 배열들을 통으로 비교한다.
//5. substring으로 문자열열의 부분을 반환한다.
//substring()메소드는 string 객체의 시작 인덱스로 부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환합니다.
const getPrefix = strs => {
let result = ‘’;
if(strs.length === 0) return result;
const first = strs[0];
for(let i = 0; i < first.length ; i++){
const prefix = first[i];
for(let j = 1; j < strs.length; j++){
if(strs[j][i] !== prefix)
return result;
}
result += prefix;
}
return result;
};