씨네
공부하는 개발자 강씨네
씨네
  • 분류 전체보기 (460)
    • Web (21)
      • HTML (11)
      • CSS (10)
    • JS 관련 (49)
      • JavaScript (27)
      • JQuery (22)
    • TS 관련 (15)
      • TypeScript (15)
    • NodeJS (7)
      • NodeJS (7)
    • 따라하며 배우는 시리즈 (23)
      • NodeJS & ReactJS Basic (23)
      • NodeJS & ReactJS Movie (0)
      • NodeJS & ReactJS Youtube (0)
      • NodeJS & ReactJS ChatBot (0)
    • SPA (14)
      • React (14)
      • Vue (0)
      • Anguler (0)
    • Java 관련 (118)
      • Java (52)
      • JDBC (6)
      • JSP & Servlet (18)
      • Spring Legecy (38)
      • SpringBoot (4)
    • Python (26)
      • Python (20)
      • PyMongo (1)
      • Django (5)
    • Git (24)
      • Github (24)
    • RDB (22)
      • Oracle (21)
      • MySQL (1)
    • NoSQL (5)
      • MongoDB (5)
    • OS (4)
      • Linux (4)
    • 빅데이터 (2)
      • hadoop (2)
    • IDE (20)
      • eclipse (11)
      • VSCODE (4)
      • VisualStudio (1)
      • IntelliJ (1)
      • PyCharm (1)
      • DBeaver (2)
    • Install (3)
      • Tomcat (1)
      • Docker (1)
      • Anaconda (1)
    • 오류&에러 (28)
      • TS (2)
      • NodeJS (7)
      • SQL (8)
      • Java (1)
      • Spring (4)
      • Git (6)
      • 기타 (0)
    • 알고리즘 (67)
      • 수열 (1)
      • 백준(backjoon) (39)
      • Programmers (27)
    • 자격증 (5)
      • SQLD (5)
    • 기타 (2)
    • IT유튜브로 지식쌓기 (2)

공지사항

인기 글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
씨네

공부하는 개발자 강씨네

알고리즘/Programmers

[JavaScript]신고 결과 받기_자바스크립트(JS) / 프로그래머스(Programmers) 연습문제(level 1)

2022. 10. 21. 20:04
728x90

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

이 문제는 간단한것 같으면서도 1단계치고 은근 생각해야하는 조건이 많아서 생각보다 난이도가 있다고 생각하였다.

하지만 하나씩 차근차근 생각해보다보니 풀수 있었다.

 

우선 한사람이 같은사람을 여러번 신고한 경우 1회만 인정이 된다. 즉, 중복제거를 해야한다.

 

또한 tmp와 같이 비어있는 새로운 복사본을 만들면 그 이후에는 조건을 생각하기 조금 쉽다.

(근데 나는 비어있는 새로운 복사본 만드는데도 애먹었음... 공부좀 하자)

 

그럼 코드를 바로 보자. 

 

const solution = (id_list, report, k) => {
    // 신고 중복 안되어 중복제거
    report = [...new Set(report)]; 
    
    // 모든 값이 0인 새로운 배열 생성
    const answer = new Array(id_list.length).fill(0); 
    
    // 빈배열을 가진 id리스트 생성
    const report_lists = {};
    id_list.map(list => {
        report_lists[list] = [];
    });
    
    // 신고당한사람: [신고한사람들 배열] 구조 값을 할당
    report.map(user => {
        const [user_id, report_id] = user.split(' ');
        report_lists[report_id].push(user_id);
    });
    
    // 결과 출력을 위해
    for(const list in report_lists) {
        if(report_lists[list].length >= k){
            report_lists[list].map(user => {
                answer[id_list.indexOf(user)] += 1;
            })
        }
    }
    
    return answer;
}
728x90
저작자표시 (새창열림)

'알고리즘 > Programmers' 카테고리의 다른 글

[JavaScript]최솟값 만들기_자바스크립트(JS) / 프로그래머스(Programmers) 연습문제(level 2)  (0) 2022.11.06
[JavaScript]성격 유형 검사하기_자바스크립트(JS) / 프로그래머스(Programmers) 연습문제(level 1)  (1) 2022.10.01
[Programmers]약수의 개수와 덧셈_자바 / 프로그래머스 연습문제(level 1)  (0) 2021.08.23
[Programmers]서울에서 김서방 찾기_자바 / 프로그래머스 연습문제(level 1)  (0) 2021.08.20
[Programmers]두 개 뽑아서 더하기_자바 / 프로그래머스 연습문제(level 1)  (0) 2021.08.19
    '알고리즘/Programmers' 카테고리의 다른 글
    • [JavaScript]최솟값 만들기_자바스크립트(JS) / 프로그래머스(Programmers) 연습문제(level 2)
    • [JavaScript]성격 유형 검사하기_자바스크립트(JS) / 프로그래머스(Programmers) 연습문제(level 1)
    • [Programmers]약수의 개수와 덧셈_자바 / 프로그래머스 연습문제(level 1)
    • [Programmers]서울에서 김서방 찾기_자바 / 프로그래머스 연습문제(level 1)
    씨네
    씨네
    개발자 씨네가 공부하는 내용을 기록 겸 공유하는 블로그입니다!

    티스토리툴바