이번 글은 아래 링크의 글들을 참조하여 작성하였습니다.
https://tech.kakao.com/2022/01/14/2022-kakao-recruitment-round-1/
2022 카카오 신입 공채 1차 온라인 코딩테스트 for Tech developers 문제해설
지난 2021년 9월 11일 토요일 오후 2시부터 7시까지 5시간 동안 2022 KAKAO BLIND RECRUITMENT 1차 코딩 테스트가 진행되었습니다. 테스트에는 총 7개의 문제가 출제되었으며, 개발 언어는 C++, Java, JavaScript, K
tech.kakao.com
코딩테스트 - 신고 결과 받기 JavaScript
신고 결과 받기 프로그래머스 Lv1 JS 문제 풀이
velog.io
https://onlydev.tistory.com/137
[프로그래머스] 신고 결과 받기 | JavaScript
문제 풀이 이게 정말 레벨1 문제인가..? 카카오 기술 블로그에서는 해시 자료구조를 활용할 수 있는지에 대한 문제라고 설명한다. (게다가 정답률이 80.13%다. 😲) 1. userList 만들기 const userList = id_l
onlydev.tistory.com
이번 문제에 대한 자세한 사항은 아래 링크를 참조하길 바란다.
https://programmers.co.kr/learn/courses/30/lessons/92334
코딩테스트 연습 - 신고 결과 받기
문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의
programmers.co.kr
코딩 테스트를 준비하며 처음으로 맞딱드린 문제였다. 머리를 싸매고 이리저리 해결방안을 궁리하였으나 결국 GG 선언하고 구글링을 통해 다른 사람들이 작성한 해답을 찾아보았다. 다른 사람들이 작성해놓은 코드를 보면 쉬워 보이는데 내 손으로 짜려고 하면 너무나도 어렵다. 더더욱 공부에 매진할 수밖에.
이번 문제풀이의 핵심은 특정 유저를 몇 명이 신고했는지, 그리고 신고 횟수를 통해 누가 정지 메일을 발송 받을지 구현해내는 것이다.
Solutions
Solution 1.
function solution(id_list, report, k) { const reportLogs = [...new Set(report)]; const userReportedInfo = {}; const answer = new Array(id_list.length).fill(0); for (const i of id_list) { if (!userReportedInfo[i]) { userReportedInfo[i] = []; } } reportLogs.forEach((el) => { const [user, reportedUser] = el.split(' '); if (!userReportedInfo[reportedUser].includes(user)) { userReportedInfo[reportedUser].push(user); } }); for (const key in userReportedInfo) { if (userReportedInfo[key].length >= k) { userReportedInfo[key].forEach((user) => { answer[id_list.indexOf(user)]++; }); } } return answer; }
Solution 2.
function solution(id_list, report, k) { const userList = id_list.reduce((result, currentId) => { result[currentId] = [0, []]; return result; }, {}); for (const id of new Set(report)) { const [user, reportedUser] = id.split(' '); userList[user][1].push(reportedUser); userList[reportedUser][0]++; } const bannedUsers = id_list.filter((id) => userList[id][0] >= k); const emailCnts = id_list.map((id) => { return userList[id][1].filter((id) => { return bannedUsers.includes(id); }).length; }); return emailCnts; }
'👩💻 Programming > Coding Test 문제 풀이' 카테고리의 다른 글
[Programmers] level 1: 숫자 문자열과 영단어 by JavaScript (0) | 2022.06.29 |
---|---|
[Programmers] level 1: 신규 아이디 추천 by JavaScript (0) | 2022.06.28 |
[BaekJoon] 1541번 잃어버린 괄호_JavaScript (0) | 2022.06.24 |
[BaekJoon] 1931번 회의실 배정_JavaScript (0) | 2022.06.24 |
[BaekJoon] 1744번 수 묶기_JavaScript (0) | 2022.06.23 |
댓글