[프로그래머스] 신고 결과 받기 (JS)

hhkim·2023년 7월 27일
0

Algorithm - JavaScript

목록 보기
77/188
post-thumbnail

풀이 과정

  1. report를 Set에 담아서 중복 제거
  2. id를 키로, 신고한 사람 배열을 값으로 하는 객체 생성
  3. report를 돌면서 각 요소를 나누고 두 번째 이름을 키로, 첫 번째 이름을 값에 추가: split()
  4. id를 키로, 결과 메일 받는 횟수를 값으로 하는 결과 객체 생성
  5. 2번 객체를 돌면서 값 배열의 길이가 k 이상이면 각 이름을 키로 해서 4번의 값 +1

코드

function solution(id_list, report, k) {
  const set = new Set(report);
  const obj = {};
  set.forEach((str) => {
    const [first, second] = str.split(' ');
    obj[second] = obj[second] === undefined ? [first] : [...obj[second], first];
  });

  const result = {};
  id_list.forEach((id) => (result[id] = 0));
  for (const key in obj) {
    if (obj[key].length < k) continue;
    obj[key].forEach((v) => (result[v] += 1));
  }
  return Object.values(result);
}

🦾

레벨 1 마지막 문제!
중복을 제거하려면 Set을 사용할 수 있다는 걸 알아서 20분도 걸리지 않았다.

0개의 댓글