[프로그래머스] 뉴스 클러스터링 (javascript)
주어진 두개의 문자열에 대해 자카드 유사도를 리턴하는 문제이다. 자카드 유사도란 문자열을 2개씩 나누어 쪼개고 france => fr, ra, an, nc, ce, french => fr, re, en, nc, ch 합집합과 교집합의 원소 갯수를 구해 나눈 것이다. insersection => {fr, nc} union => {fr, ra, an, nc, ce, re, en, ch} 2/8 = 0.25 유의할 점이 있는데 1. 여기서 합집합과 교집합을 구할 때, 중복을 허용하는 집합이라는 점에 유의해야 한다. 예를들어 aaaa, aaa가 주어졌다면 => [aa, aa, aa] [aa, aa] 중복을 허용하지 않는다면 교집합은 [aa]가 되겠지만, 이 문제의 경우 중복을 허용하기 때문에 [aa, aa]가 ..
2021. 8. 12.
[LeetCode] Merge Intervals (javascript)
주어진 2차배열 내의 요소들끼리 겹치는 것을 합쳐주는 문제다. 예를들어 [[1, 3], [2, 4], [5, 8]] 이 있다고 하면 이렇게 [[1, 4], [5, 8]]로 겹치는 요소는 합쳐주는 것이다. 여기서 각 요소의 첫 번째 요소([1, 4]의 1)를 head, 두 번째 요소([1, 4]의 4)를 tail이라고 부르겠다. 그래서 배열을 차례대로 돌면서, 현재 요소와 다음 요소가 겹치는 부분이 있으면 합치는 방식으로 풀었다. 어렵지 않게 풀리는듯 했으나 간과했던 포인트가 있었는데, 1. 주어진 배열들은 소팅되어 있지 않다. 즉, 차례대로 합치다간 나중에 제외되는 요소가 나타난다. ex. [[1, 3], [2, 4], [5, 8], [2, 3]] => [[1, 4], [5, 8]]이 되어야 하나 [[1..
2021. 6. 15.