프로그래머스_C#/Level_1
[프로그래머스 C#] 신고 결과 받기
최애뎡
2022. 4. 13. 20:14
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/92334
코딩테스트 연습 - 신고 결과 받기
문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의
programmers.co.kr
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 씩 해주는 느낌
할 게 없었는데 재밌당
반응형