[LeetCode] Merge Similar Items

준규·2022년 11월 20일
0

2차원 정수 배열 items1 과 items2가 주어질 때 각 item 배열은 다음과 같은 성질을 가진다고 한다.

1 . items[i] = [value , weight] 이다.
2 . 각각의 value는 unique하다.

이런 조건에서 각 value들의 weight 값을 더하여서 ret으로 리턴하는 문제이다. 이때 ret은 value를 기준으로 오름차순 정렬되어야한다.

Example을 보자

예시를 보면 각 value 마다 weight가 있는데 두 배열 안의 같은 value의 weight 값을 더하여 ret 배열에 넣어주면 된다.

const mergeSimilarItems = function(items1, items2) {
    const item = items1.concat(items2);
    item.sort((a,b) => a[0] - b[0]);
    const result = []
 
    let dic = {};
    item.forEach((arr) => {
        dic[arr[0]] ?  dic[arr[0]] = dic[arr[0]] + arr[1] : dic[arr[0]] = arr[1];
    })
    
    for(key in dic) {
        result.push([key , dic[key]]);
    }
    
    return result
};

우선 객체를 이용하여 value를 key , weight를 value로 하여 각 value의 총 weight를 정리하기로 했다.

일단 items1 , items2 두 배열을 하나의 배열로 합쳐주고 value값을 기준으로 오름차순 정렬을 해주었다.

그다음 items의 부분 배열을 순회를 하면서 각 value의 weight값을 정리해주었다.

그 다음 dic을 순회하면서 result 배열에 [value , weight] 값으로 넣어주고 리턴해주었다.

submit을 해보니

정답이었다!

profile
안녕하세요 :)

0개의 댓글