LeetCode 14. Longest Common Prefix

펭도리·2021년 5월 5일
0

LeetCode

목록 보기
2/4
post-thumbnail

첫 접근

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;
}
profile
풀스택 개발자가 되고싶은 코린이 이한글

0개의 댓글