[프로그래머스] 코딩테스트 연습 - 34

krkorklo·2022년 2월 5일
0

프로그래머스

목록 보기
34/78

level 2 - 뉴스 클러스터링

2018 KAKAO BLIND RECRUITMENT 참조

function solution(str1, str2) {
    var str1_arr = str1.split("");
    var str2_arr = str2.split("");
    
    var regex = /[^a-zA-Z]/;
    str1 = str1_arr.map((s, i) => (s + str1_arr[i + 1]).toLowerCase()).slice(0, str1_arr.length - 1).filter((s) => !regex.test(s));
    str2 = str2_arr.map((s, i) => (s + str2_arr[i + 1]).toLowerCase()).slice(0, str2_arr.length - 1).filter((s) => !regex.test(s));

    if (str1.length == 0 && str2.length == 0) return 65536;
    
    var concat = [...str1, ...str2];
    var inter = [];
    str1.forEach((s) => {
        if (str2.includes(s)) {
            inter.push(s);
            str2.splice(str2.indexOf(s), 1);
        }
    });
    inter.forEach((i) => concat.splice(concat.indexOf(i), 1));
    var uni = concat;
    var answer = inter.length / uni.length;
    
    return parseInt(answer * 65536);
}

어어어엉ㅁ청 오래 걸렸다.
사실 처음에는 문제 잘못보고 맨 처음에 정규식 적용했다가 20분 정도 날리고... 또 다중 집합이 아니라 그냥 집합으로 봐서 30분 정도를 날리고... 합집합 교집합 제대로 못 구해서 시간 날려서 거의 한 시간을 풀었다

😳

0개의 댓글