첫 접근
let count = new Set();
strs.map(v => v.split("")).map(v => [...new Set(v)].join(""))
.reduce((acc,cur) => acc = acc+cur)
.split("")
.forEach(v => count[v] = (count[v] || 0) + 1);
처음에는 꼭 붙어있지 않고 떨어져있어도 반복되는 문자가 똑같이 있다면 그것이 반환되는 것이 정답인줄 알았다. 하지만 Example1
처럼 fl이 3개의 문자열에서 전부 붙어있어야 성립하는것이 정답이였다.
그래서 코드를 처음부터 다시 접근하기 시작했다.
의외로 너무 간단한 문제였다.
const longestCommonPrefix = (strs) => {
let result = '';
for(let i=0; i<strs[0].length; i++) {
let char = strs[0][i]; // 배열의 첫번째 문자열에서 문자 하나하나 비교하려 하였다.
// 이 for문은 example1을 예시로 설명할때 flo 에서 o 를 만나면 그대로 result 를 return 한다.
for(let j=1; j<strs.length; j++) {
if(strs[j][i] !== char) return result;
}
result += char; // for문을 무사히 통과한 char만 result에 합쳐준다.
}
if(strs.length < 1) return "";
return result;
}