ETC/알고리즘

2022/05/02 신고 결과 받기

괴발새발자 2022. 5. 2. 22:33

https://programmers.co.kr/learn/courses/30/lessons/92334

 

코딩테스트 연습 - 신고 결과 받기

문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의

programmers.co.kr

나의 풀이

function solution(id_list, report, k) {
        var answer = new Array(id_list.length).fill(0);
        let blocked = new Array(id_list.length).fill(0);
        let reportArr = [...new Set(report)].map((el) => el.split(' '));
        for (let i = 0; i < reportArr.length; i ++) {
            blocked[id_list.indexOf(reportArr[i][1])]++;
        }
        for (let i = 0; i < reportArr.length; i++) {
            if(blocked[id_list.indexOf(reportArr[i][1])] >= k) {
                answer[id_list.indexOf(reportArr[i][0])]++;
            }
        }
        return answer;
    }

성능

테스트 1 〉	통과 (0.17ms, 29.8MB)
테스트 2 〉	통과 (0.19ms, 30.2MB)
테스트 3 〉	통과 (814.50ms, 86.5MB)
테스트 4 〉	통과 (0.17ms, 29.6MB)
테스트 5 〉	통과 (0.24ms, 30MB)
테스트 6 〉	통과 (2.03ms, 30.3MB)
테스트 7 〉	통과 (2.74ms, 30.1MB)
테스트 8 〉	통과 (3.40ms, 30.2MB)
테스트 9 〉	통과 (268.29ms, 59.9MB)
테스트 10 〉	통과 (249.20ms, 59.4MB)
테스트 11 〉	통과 (686.88ms, 87.5MB)
테스트 12 〉	통과 (0.62ms, 30.1MB)
테스트 13 〉	통과 (0.38ms, 30.2MB)
테스트 14 〉	통과 (281.87ms, 53MB)
테스트 15 〉	통과 (287.84ms, 64MB)
테스트 16 〉	통과 (0.51ms, 30.2MB)
테스트 17 〉	통과 (0.63ms, 30MB)
테스트 18 〉	통과 (1.01ms, 30.3MB)
테스트 19 〉	통과 (2.34ms, 30.3MB)
테스트 20 〉	통과 (252.80ms, 52.4MB)
테스트 21 〉	통과 (365.14ms, 64.4MB)
테스트 22 〉	통과 (0.12ms, 30.3MB)
테스트 23 〉	통과 (0.12ms, 29.9MB)
테스트 24 〉	통과 (0.12ms, 30.1MB)

참고

  • new Map : 로컬 스토리지 사용법과 비슷하게 느껴졌다.
const map1 = new Map();

map1.set('a', 1);
map1.set('b', 2);
map1.set('c', 3);

console.log(map1.get('a'));
// expected output: 1

map1.set('a', 97);

console.log(map1.get('a'));
// expected output: 97

console.log(map1.size);
// expected output: 3

map1.delete('b');

console.log(map1.size);
// expected output: 2

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

 

Map - JavaScript | MDN

The Map object holds key-value pairs and remembers the original insertion order of the keys. Any value (both objects and primitive values) may be used as either a key or a value.

developer.mozilla.org