通報の結果を受け取る


📚 Lv 1-通報結果の受信


通報の結果を受け取る
 

理解する


(1) Dictionary
  • k回以上の通報を受けた場合に停止する.停止すると、彼を告発した人にメールを送ります.
  • (2)k回通報を受けた人だけが停止される.→key=通報者として設定
  • key:通報者、value:通報者
  • value長さがk回を超えるとメールが届きます.
  •  
        dic_report = {id: [] for id in id_list}
        answer = [0] * len(id_list)
        for report in set(reports):
            report = report.split(' ')
            dic_report[report[1]].append(report[0])
  • idリストから辞書を生成
  • 回答:結果値を含むリスト(受信メール回数)
  • 報告:(1)届出者、(2)届出者
  • 受取人value届出人に入れる.
  • valueの長さから、何回通報されたかがわかります.
  •  
        for key, value in dic_report.items():
            if len(value) >= k:
                for v in value:
                    answer[id_list.index(v)] += 1
  • 通報情報を含むDictionaryを探索する.
  • k回以上の者、届出者位置+1.
  •  

    ソース

    def solution(id_list, reports, k):
    
        dic_list = {id : [] for id in id_list}
        answer = [0] * len(id_list)
    
        # key와 value를 넣는다.
        for report in set(reports):
            report = report.split(' ')
            dic_list[report[1]].append(report[0])
    
        for key, value in dic_list.items():
            if len(value) >= k:
                for v in value:
                    answer[id_list.index(v)] += 1
    
        return answer

     
    リファレンス
  • https://zest1923.tistory.com/65