뉴스 클러스터링[JS]

잡초·2023년 12월 21일
0
post-thumbnail

문제

나의 풀이

function solution(str1, str2) {
  let arr1 = []; //2개씩 자른 문자열을 저장할 배열
  let arr2 = [];
  let inter = 0; //교집합의 수

  //대소문자 구분 없음
  str1 = str1.toLowerCase();
  str2 = str2.toLowerCase();

  //2개의 문자가 a-z일때 배열에 추가
  for (let i = 0; i < str1.length - 1; i++) {
    if (
      str1[i] >= "a" &&
      str1[i] <= "z" &&
      str1[i + 1] >= "a" &&
      str1[i + 1] <= "z"
    ) {
      arr1.push(str1[i] + str1[i + 1]);
    }
  }

  for (let j = 0; j < str2.length - 1; j++) {
    if (
      str2[j] >= "a" &&
      str2[j] <= "z" &&
      str2[j + 1] >= "a" &&
      str2[j + 1] <= "z"
    ) {
      arr2.push(str2[j] + str2[j + 1]);
    }
  }

  //교집합 구하기
  for (let x = 0; x < arr1.length; x++) {
    for (let y = 0; y < arr2.length; y++) {
      if (arr1[x] === arr2[y]) {
        inter++;
        arr2[y] = ".";
        break;
      }
    }
  }
  
  //합집합 구하는 법 : 두 그룹의 합 - 교집합
  let union = arr1.length + arr2.length - inter;

  return union === inter ? 65536 : Math.floor((inter / union) * 65536);
}
profile
개발자가 되고싶은 잡초

0개의 댓글