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