👉 https://programmers.co.kr/learn/courses/30/lessons/92334
코테 4번째 문제만의 큰 난관에 봉착했다 ㅎㄷㄷ 하지만 나름 유추 한걸 적어본다.
"한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다." 라는 문제 설명을 보고 report array를 set로 만들면 중복이 제거되겠다 라는 생각
report를 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;
}