[프로그래머스]JS-신고 결과 받기

진경·2022년 4월 28일
0

코딩테스트 준비

목록 보기
1/18
post-custom-banner

그냥 문제가 준 순서대로 풀어보았다. 다른사람이 푼 풀이를 보니 처음 보는 것들이 많아서 공부를 해 보았다.
Map 이 무엇인지 찾아보았다.
값을 키와 값으로 묶어 저장하고 조회하는 기능을 가지고 있다.( Python의 Dictionary와 같은 자료구조)

Map.prototype.clear():Map의 모든 값 삭제

Map.prototype.delete(key):Map에 요소가 존재한다면 true 반환 후 삭제. 요소가 없다면 Map.prototype.has(key) 가 false 반환.

Map.prototype.get(key): key와 관련된 값 반환. 값이 없다면 undefined 반환

Map.prototype.has(key): 값이 맵 개체의 키에 연결되었는지 여부를 나타내는 boolen을 반환합니다.

Map.prototype.set(key, value):Map 객체의 키 값을 설정합니다. Map 개체를 반환합니다.

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


for...of 문

for...of 문은 각각의 고유한 특성의 값을 실행할 명령과 함께 사용자 지정 반복 후크를 호출하여, 반복 가능한 객체(배열, Map, Set, 인수 객체 등을 포함)를 통해 반복하는 루프를 만듭니다.

for (variable of object) {
  statement
}

다음 예는 for...of 루프와 for...in 루프의 차이를 보여줍니다. 속성 이름을 통해 for...in이 반복하는 동안, for...of은 속성 값을 통해 반복합니다:

let arr = [3, 5, 7];
arr.foo = "hello";

for (let i in arr) {
   console.log(i); // logs "0", "1", "2", "foo"
}

for (let i of arr) {
   console.log(i); // logs "3", "5", "7"
}

내 풀이

function solution(id_list, report, k) {
    var answer = [];
    let report_set= new Set(report);
    report_set=[...report_set];
    let report_name=[]
    for(i=0;i<report_set.length;i++){
        report_name[i]=report_set[i].split(' ');
    }
 
    let reported_num=[];
    let reported_name=[];
    for(j=0;j<id_list.length;j++){
         reported_num[j]=0
        for(i=0;i<report_name.length;i++){
        if(report_name[i][1]===id_list[j]){
            reported_num[j]=reported_num[j]+1;
        }
        }
    }
    for(i=0;i<reported_num.length;i++){
        if(reported_num[i]>=k){
            reported_name.push(id_list[i]);
        }
    }
    let tmp=[];
    for(i=0;i<report_name.length;i++){
        for(j=0;j<reported_name.length;j++)
        if(report_name[i][1]===reported_name[j]){
            tmp.push(report_name[i][0]);
        }
    }
    var t;
    for(i=0;i<id_list.length;i++){
        t=0;
        for(j=0;j<tmp.length;j++){
            if(tmp[j]===id_list[i]){ 
                t=t+1;
            }
        }
        answer.push(t);
        
    }
 
    return answer;
}
profile
프론트엔드 취준생입니다
post-custom-banner

0개의 댓글