レポート結果の取得-javascript


質問(ソース)


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

私の接近


  • コットの4番目の問題の大きな難関に出会って、震えていたが、似たようなことを書いた.

  • 1人のプレイヤーを複数回通報することができますが、同じプレイヤーに対する通報回数は1回に処理されます.レポート配列をsetに設定して重複除外

  • レポートをsplit関数に分けて単独で保存する考え方

  • ずっと悩んで、答えを探して、それを私のものにしようと思っていましたが、これさえ理解しにくいです!

  • 一歩一歩积み重ねてこの文章を読んだ时はとても简単な问题だったのか、やれる日が来るのを楽しみにしていてそのまま过ごした~
  • に答える

    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++
          
          if (reportObj[reportedPerson].reported >= k) {
            reportObj[reportedPerson].isStoppedId = true;
          }
        }
      });
    
      let sendMail = id_list.map((val) => {
        return reportObj[val].report.filter((reportId) => reportObj[reportId].isStoppedId).length;
      });
    
      return sendMail;
    }

    今日の勉強と教訓

  • 資料構造図の可用性について理解した.idリストで配列変数を作成して入れるべきですか?考えてみればやりやすい.
    今はまだ気まずいですが、後でcoteを準備するときもわざと使ってみましょう.これからは仲良くしてね.
  • map()とforeach()の違いがわかりました.簡単に考えると、map()は実行結果を収集する新しい配列を返します.まず...
  • indexOf()の使用方法も理解した.
  • たまに
  • フィルター()…使うたびに日差しが変わります.でも缲り返すだけの想いで
  • この問題は答えにくいですが、来年この文章を読むときは簡単だと思います.