-
2022 KAKAO BLIND RECRUITMENT) 신고 결과 받기신고 결과 받기Algorithm/프로그래머스 2022. 7. 7. 13:29
문제
https://school.programmers.co.kr/learn/courses/30/lessons/92334
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(id_list, report, k) { var answer = []; answer = Array.from({ length: id_list.length }, () => 0); const reportArr = [...new Set(report)].map((v) => v.split(" ")); let reportMap = new Map(); for (let x of reportArr) { reportMap.set(x[1], reportMap.get(x[1]) + 1 || 1); } for (let x of reportMap) { if (x[1] >= k) { for (let y of reportArr) { if (y[1] === x[0]) { answer[id_list.indexOf(y[0])] = answer[id_list.indexOf(y[0])] + 1; } } } } 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));
1) 문제의 조건에 따라 한 아이디에서 같은 아이디로의 중복된 신고를 제거해주기 위해 Set을 활용하였습니다.
2 ) 신고 횟수는 Map 을 활용하였습니다.
key: 신고당한 아이디
value: 횟수 카운트
3) Map을 for으로 순회하면서 value가 k보다 높은 아이디가 있으면 해당 아이디를 신고한 유저에게 answer 배열에 카운트를 증가시켰습니다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
2020 카카오 인턴십) 키패드 누르기 (0) 2022.07.08 2021 카카오 채용연계형 인턴십) 숫자 문자열과 영단어 (0) 2022.07.08 2021 KAKAO BLIND RECRUITMENT) 신규 아이디 추천 (0) 2022.07.07 2021 Dev-Matching) 로또의 최고 순위와 최저 순위 (0) 2022.07.07 크레인 인형 뽑기 게임 (0) 2022.06.18