https://school.programmers.co.kr/learn/courses/30/lessons/92334
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제는 위의 링크를 참조 해주세요
function solution(id_list, report, k) {
let answer = [];
// 중복 제거된 신고자
let reports = {};
// 신고된 카운트
let reportsCount = {};
// 중복 제거
id_list.forEach( (id) => {
reports[id] = new Set();
reportsCount[id] = 0;
})
// 각 사용자별로 신고된 횟수 구별
report.forEach((v) => {
// [신고자, 신고당한자]로 나뉘기에 split으로 구별
const [reporter, encounter] = v.split(/\s+/);
if ( !reports[reporter].has(encounter) === true) {
// 신고한 사람을 key 신고 당한 사람을 value
reports[reporter].add(encounter);
// 신고 당한자 카운트
reportsCount[encounter] +=1;
}
})
// 신고당한자 구별
let stopper = [];
for(let key in reportsCount) {
if ( reportsCount[key] >= k) {
stopper.push(key)
}
}
// 신고한 사람이 정지 되어 신고한 사람한테 알림 보내야하는 횟수
for( let key in reports){
let count = 0;
stopper.forEach( (v) => {
if ( reports[key].has(v) ) {
count += 1;
}
})
answer.push(count)
count = 0;
}
return answer;
}
const id_list = ["muzi", "frodo", "apeach", "neo"]
const report= ["muzi frodo","apeach frodo","frodo neo","muzi neo","apeach muzi"]
const k = 2;
console.log(solution(id_list, report, k))

https://github.com/alsyean/algorithm/blob/master/lv1/report_results.js
algorithm/lv1/report_results.js at master · alsyean/algorithm
coding test algorithm. Contribute to alsyean/algorithm development by creating an account on GitHub.
github.com
출처 : 프로그래머스 코딩테스트 연습, https://school.programmers.co.kr/learn/challenges
코딩테스트 연습 | 프로그래머스 스쿨
개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!
school.programmers.co.kr
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 가장 많이 받은 선물 / Js (0) | 2024.04.20 |
---|---|
[프로그래머스 ] 추억의 점수 / Js (0) | 2024.04.19 |