- 코딩테스트 연습
- 2022 KAKAO BLIND RECRUITMENT
- 신고 결과 받기
// 해시 자료구조를 사용할 수 있는가를 물어보는 문제
function solution(id_list, report, k) {
const answer = new Array(id_list.length);
answer.fill(0)
// answer 배열을 id_list의 크기만큼 할당하고 fill 함수를 사용하여 0으로 초기화한다.
const report_list = {} //
// report_list 객체에 key는 user의 id 값을, value는 신고한 사람을 담기 위한 빈 배열을 추가한다.
id_list.map((user) => {
report_list[user] = [] // key로 userid를 value로 빈 배열을 가지는 객체
})
report.map((user) => {
const [user_id, report_id] = user.split(' ')
if(!report_list[report_id].includes(user_id)){
report_list[report_id].push(user_id)
}
})
/*
report의 값이 ["muzi frodo", ...] 와 같이 '신고한 id 신고 당한 id' 형식의 띄어 쓰기로
구분된 문자열을 split으로 자르고 각각 user_id와 report_id로 나눠주었다.
그리고 배열에 포함하는지 여부를 확인하여 포함하지 않을때 신고자의 이름을 추가하였다.
*/
for (const key in report_list){
if (report_list[key].length >= k){ // 이용정지 유저
report_list[key].map((user)=>{
answer[id_list.indexOf(user)] += 1
})
}
}
// report_list의 배열길이가 k값 이상이면 정지된 유저이다.
// answer에 해당 유저를 신고한 유저가 받은 메일을 수를 +1하여준다.
return answer;
}
'Coding > 내일배움캠프' 카테고리의 다른 글
[내일배움캠프] 타입스크립트 개인 과제 4일차 | Node.js 4기 | Day 69 | 24.03.13.(수) (0) | 2024.03.14 |
---|---|
[내일배움캠프] 타입스크립트 개인 과제 3일차 | Node.js 4기 | Day 68 | 24.03.12.(화) (1) | 2024.03.12 |
[내일배움캠프] 멀티레포 | Node.js 4기 | Day 66 | 24.03.10.(일) (0) | 2024.03.10 |
[내일배움캠프] 모노레포 | Node.js 4기 | Day 65 | 24.03.09.(토) (0) | 2024.03.10 |
[내일배움캠프] 타입스크립트 개인 과제 2일차 | Node.js 4기 | Day 64 | 24.03.08.(금) (0) | 2024.03.08 |