PROGRAMMERS_004

문제

문제

해결

function findFirstDifferenceIndex(str1, str2) {

    if (!str1 || !str2) return 0;
    const minLength = Math.min(str1.length, str2.length);
    
    for (let i = 0; i < minLength; i++) {
        if (str1[i] !== str2[i]) {
            return i + 1;
        }
    }
    // 루프를 모두 돌았는데 다른 부분이 없으면 두 문자열 중 하나가 다른 문자열의 접미사인 경우입니다.
    // 두 문자열 중 짧은 문자열의 길이를 반환합니다.
    return str2.length < str1.length ? minLength + 1 : minLength;
}

function solution(words) {
    var answer = 0;
    words.sort();
    for (let i = 0;i < words.length; i++){
        const index = Math.max(findFirstDifferenceIndex(words[i], words[i - 1]), findFirstDifferenceIndex(words[i], words[i + 1]));
        answer += index;
    }
    
    return answer;
}

풀이

  • 배열 정렬 후 앞 뒤로 비교

Last updated