[프로그래머스] 신고결과받기 with JavaScript

waterglasses·2022년 1월 24일
0
post-thumbnail

📌 문제

https://programmers.co.kr/learn/courses/30/lessons/92334

📌 풀이

  • 처음 id_list를 신고한 ID, 신고당한 횟수, 아이디가 정지되었는지를 초기화하여서 객체로 만든다.
  • 입출역예시로 하나하나 값을 변경하면서 값을 찾으면된다.

📌 코드

function solution(id_list, report, k) {
  let reportObj = new Map();
  id_list.forEach((val) => {
    return (reportObj[val] = {
      report: [],
      reported: 0,
      isStoppedId: false,
    });
  });

  report.forEach((val) => {
    let [reportPerson, reportedPerson] = val.split(' ');

    if (reportObj[reportPerson].report.indexOf(reportedPerson) === -1) {
      reportObj[reportPerson].report.push(reportedPerson);
      reportObj[reportedPerson].reported += 1;
      
      if (reportObj[reportedPerson].reported >= k) {
        reportObj[reportedPerson].isStoppedId = true;
      }
    }
  });

  let cntOfSendMail = id_list.map((val) => {
    return reportObj[val].report.filter((reportId) => reportObj[reportId].isStoppedId).length;
  });

  return cntOfSendMail;
}
profile
매 순간 성장하는 개발자가 되려고 노력하고 있습니다.

0개의 댓글