반응형
1. 나와있는 테스트케이스만 통과하고 나머지는 실패했다.
2. 로직을 너무 복잡하게 짰다. 아래 블로그 글을 참조해서 문제를 풀었다.
function solution(id_list, report, k) {
const answer = new Array(id_list.length);
answer.fill(0);
const reportList = {};
id_list.map((user) => {
reportList[user] = [];
//나는 배열이 아닌 원시값을 통해 count로 접근했는데 이렇게 되면 아래 로직에서 중복값을 자동제거 가능하다.
})
report.map((user) => {
const [userId, reportId] = user.split(" ");
//slice, indexOf를 통해 문자열을 잘랐는데, 이렇게 자르면 key와 value로 진행시킬 수 있다.
if (!reportList[reportId].includes(userId)) {
//중복된 신고는 하지 못하기 때문에 중복된 값이 빼고 reportId = [userID] 형태로 push
reportList[reportId].push(userId);
}
});
for (const key in reportList) {
if (reportList[key].length >= k) {
reportList[key].map((user) => {
//k만큼 신고수가 넘었다면 answer에 += 1씩 더해준다. 만약 없더라도 이미 위에서 0으로 초기값 설정
answer[id_list.indexOf(user)] += 1;
})
}
}
return answer;
}
코딩테스트 - 신고 결과 받기 JavaScript
신고 결과 받기 프로그래머스 Lv1 JS 문제 풀이
velog.io
반응형
'알고리즘문제' 카테고리의 다른 글
프로그래머스 > 숫자짝궁 (0) | 2022.10.18 |
---|---|
프로그래머스 > 삼총사 (0) | 2022.10.17 |
프로그래머스 > 2020 카카오 인턴십 - 키패드 누르기 (0) | 2022.10.12 |
프로그래머스 > 로또의 최고 순위와 최저 순위 (0) | 2022.10.09 |
프로그래머스 > 실패율 (1) | 2022.10.08 |