https://school.programmers.co.kr/learn/courses/30/lessons/92334
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
function solution(id_list, report, k) {
const answer = [];
const reporterMap = {}; // 각 유저가 신고한 사용자를 저장
const reportedMap = {}; // 각 유저가 신고당한 횟수를 저장
// 초기화: 모든 유저에 대해 빈 배열 및 0으로 설정
id_list.forEach(id => reporterMap[id] = []);
id_list.forEach(id => reportedMap[id] = 0);
// 신고 처리
report.forEach(entry => {
const [reporter, reported] = entry.split(' ');
// 동일 유저가 같은 사람을 여러 번 신고한 경우는 한 번만 카운트
if (!reporterMap[reporter].includes(reported)) {
reporterMap[reporter].push(reported); // 신고 추가
reportedMap[reported]++; // 신고당한 횟수 증가
}
});
// 결과 계산
id_list.forEach(id => {
let cnt = 0;
// 유저가 신고한 사람 중 이용 정지 당한 사람만 카운트
reporterMap[id].forEach(reportedId => {
if (reportedMap[reportedId] >= k) {
cnt++;
}
});
answer.push(cnt);
});
return answer;
}
'코딩테스트 > Programmers' 카테고리의 다른 글
베스트 앨범 (JS) (1) | 2025.01.06 |
---|---|
오픈 채팅방 (JS) (1) | 2025.01.06 |
표 편집 (JS) (1) | 2025.01.05 |
크레인 인형 뽑기 (JS) (0) | 2025.01.05 |
방문 길이 (JS) (0) | 2025.01.05 |