728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/92334
using System;
using System.Collections.Generic;
public class Solution {
public int[] solution(string[] id_list, string[] report, int k) {
int[] answer = new int[id_list.Length];
Dictionary<string, List<string>> _dic_report = new Dictionary<string, List<string>>();
Dictionary<string, int> _dic_count = new Dictionary<string, int>();
Dictionary<string, int> _dic_result = new Dictionary<string, int>();
for (int i = -1; ++i < id_list.Length;)
{
_dic_report.Add(id_list[i], new List<string>());
_dic_count.Add(id_list[i], 0);
_dic_result.Add(id_list[i], 0);
}
foreach (string content in report)
{
string[] strA_temp = content.Split(' ');
List<string> list_temp = _dic_report[strA_temp[1]];
if (!list_temp.Contains(strA_temp[0]))
list_temp.Add(strA_temp[0]);
_dic_report[strA_temp[1]] = list_temp;
}
for (int i = -1; ++i < id_list.Length;)
{
string id = id_list[i];
_dic_count[id] = _dic_report[id].Count;
}
for (int i = -1; ++i < id_list.Length;)
{
if (_dic_count[id_list[i]] >= k)
{
List<string> list_temp = _dic_report[id_list[i]];
foreach (string id in list_temp)
_dic_result[id] += 1;
}
}
int index = -1;
foreach (int count in _dic_result.Values)
answer[++index] = count;
return answer;
}
}
세상 무식해 보이지만 또 어떻게 보면 직관적인 느낌으로
각 ID당 신고 유저를 겹치지 않게 배출하고
신고당한 횟수를 구한 뒤
이용정지 기준(k)에 부합할 경우
기준에 부합하는 ID를 신고한 ID에 +1 씩 해주는 느낌
할 게 없었는데 재밌당
반응형
'프로그래머스_C# > Level_1' 카테고리의 다른 글
[프로그래머스 C#] 8주차_최소직사각형 (0) | 2021.10.21 |
---|---|
[프로그래머스 C#] 나머지가 1이 되는 수 찾기 (0) | 2021.10.20 |
[프로그래머스 C#] 없는 숫자 더하기 (0) | 2021.10.19 |
[프로그래머스 C#] 6주차_복서 정렬하기 (0) | 2021.10.18 |
[프로그래머스 C#] Level 1 Tips (0) | 2021.09.11 |