https://school.programmers.co.kr/learn/courses/30/lessons/17677
나의 풀이
아직 푸는 중이다. 전부 구현했는데 딱 1개 다중집합 구현에서 브레이크가 걸렸다.
function solution(str1, str2) {
const CONSTANT = 65536
const makeJaccard = (str) =>{
let pickString = str.toLowerCase().split("")
let multipleSet = pickString.reduce((acc,cur,i,arr) => {
let toto = (cur + arr[i+1]).match(/[a-z]+/g)
toto && String(toto).length === 2 && acc.push(String(toto))
return acc
},[])
return multipleSet
}
const union = new Map()
const s1map = new Map()
const intersection = []
const s1 = makeJaccard(str1)
const s2 = makeJaccard(str2)
s1.forEach( x=> union.set(x,1) && s1map.set(x,1) )
s2.forEach( x=> union.set(x,1))
s2.forEach(x=> s1map.has(x) && intersection.push(x))
const result = intersection.length / union.size
return result ? Math.floor(result * CONSTANT) : CONSTANT
}
아직 오류가 있는 코드이다.
다중집합만 구현해주고 해주면 된다.
지금은 일반 합집합 교칩합으로 설정이 되어있다.
다른 사람 풀이
'알고리즘 > 프로그래머스 - JS' 카테고리의 다른 글
[프로그래머스 - JS] level.2 k진수에서 소수 개수 구하기 (0) | 2022.12.26 |
---|---|
[프로그래머스 - JS] level.2 프린터 (0) | 2022.12.23 |
[프로그래머스] level.2 위장 (해시) (0) | 2022.10.25 |
[프로그래머스] level.2 튜플 (0) | 2022.10.17 |
[프로그래머스 - JS] level.2 n^2 배열 자르기 (0) | 2022.10.17 |