strs
은 단어가 담긴 배열입니다. 공통된 시작 단어(prefix)를 반환해주세요.예를 들어
strs = ['start', 'stair', 'step']
return은'st'
strs = ['start', 'wework', 'today']
return은""
const getPrefix = strs => {
if (!strs.length) {
return ""
}
let prefix = "";
const checkStartswith = (index) => {
return strs.every((item) => item.startsWith(prefix + strs[0][index]))
}
for(let i = 0; i < strs[0].length; i++) {
if(checkStartswith(i)) {
prefix += strs[0][i]
} else {
return prefix;
}
}
return prefix;
}
배열의 모든 요소를 하나씩 돌며 조건을 심사해야 하기에 every
메서드를 사용했고, startsWith
메서드는 구글링을 통해 알아냈다. 깃허브에는 if절의 조건으로 checkStartswith
함수의 return 문을 그대로 넣었는데, 블로그에 올리다가 조건이 너무 긴 것 같아 따로 체크하는 함수로 따로 빼보았다.
배열의 모든 요소가 지금까지의 prefix에 strs[0]
의 다음 글자를 더한 글자로 시작한다면 prefix에 그 글자를 더하고, 시작하지 않는다면 현재까지 모은 prefix를 반환하는 로직이다.