프로그래머스 JS - 신고 결과 받기
📃 신고 결과 받기
프로그래머스 2022 카카오 블라인드 코딩테스트 문제입니다. 자바스크립트로 풀었습니다.
신고 결과 받기
✔ 입력값
- id_list: 이용자의 id가 담긴 문자열 배열
- repoort: 신고한 유저 id와 그 유저가 신고한 유저id 문자열 배열
- k: 정지 기준 신고 횟수 (포함)
✔ 출력값
- 각 유저별 처리 결과 메일을 받은 횟수를 담은 배열
✔ 풀이과정
프로그래머스 2022 카카오 블라인드 코딩테스트 문제입니다. 자바스크립트로 풀었습니다.
신고 결과 받기
신고를 당한 유저의 신고 수, 신고한 유저의 id 알아야 합니다.
신고 당한 유저의 id를 key로 하고 신고한 유저의 id를 배열로 저장하는 객체를 만들어서 문제를 해결했습니다.
✔ 문제 예시 1번 객체
- key: 신고 당한 유저의 id
- value: 신고를 한 유저의 id 배열
const report_list = {
muzi: [apeach]
frodo: [muzi, apeach] - 정지
apeach: []
neo: [frodo, muzi] - 정지
}
✔ 풀이
function solution(id_list, report, k) {
const answer = new Array(id_list.length).fill(0);
console.log(answer);
const report_list = {}; //
id_list.map((user) => {
report_list[user] = [];
});
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);
}
});
for (const key in report_list) {
if (report_list[key].length >= k) {
//이용정지 유저
report_list[key].map((user) => {
answer[id_list.indexOf(user)] += 1;
});
}
}
return answer;
}
solution(
["muzi", "frodo", "apeach", "neo"],
["muzi frodo", "apeach frodo", "frodo neo", "muzi neo", "apeach muzi"],
2
);
✔ 코드 라인별 풀이
const answer = new Array(id_list.length).fill(0);
answer 배열을 id_list의 크기만큼 할당하고 fill함수를 사용하여 0으로 초기화합니다.
id_list.map((user)=>{report_list[user] = []})
report_list 객체에 key는 uesr의 id 값을 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하여준다.
Author And Source
이 문제에 관하여(프로그래머스 JS - 신고 결과 받기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jackma914/프로그래머스-JS-신고-결과-받기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)