젬니
Jemin IT블로그
젬니
전체 방문자
오늘
어제
  • 분류 전체보기 (190) N
    • [Engineering] (4) N
    • [PGS] (8)
    • [BOJ] (20)
    • [백엔드] (3)
    • [DevOps] (14)
    • [Django] (2)
    • [ Algorithm] (33)
    • [SqL] (12)
    • [Techit] (6)
    • [InteliJ 설정] (0)
    • [CS 공부] (42)
    • [DB] (22)
    • [TDD] (1)
    • [NCP] (4)
    • [for Rest 프로젝트] (11)
    • [Kotlin] (3)
    • [비공개 공부] (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 햣

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
젬니

Jemin IT블로그

프로그래머스 신고 결과 받기 [Java]
[PGS]

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

2023. 3. 30. 17:41

풀이과정

1.  유저 ID를 기준으로 신고한사람을 저장해야하므로 Map 사용

2.  value는 key를 신고한 유저의 아이디를 중복없이 저장해야하므로 HashSet<> 사용

3. 신고한 HashSet<>의 크기가 K보다 클 경우 idxMap의 value값 1씩 증가시켜줌

배운점

1. HashSet<> 의 형태는 [1,2,3]과 같은 리스트 형태이다.

2. map.get(to).add(from); 시 muzi = [apeach, ...] 이런식으로 저장된다. apeach를 더 넣어도 한번만 저장된다.

3.  int myArray[범위]++; 위치 범위의 요소에 1을 증가시킨다.

     고로answer[idxMap.get(name)]++; 는 이름위치를 만들고 이름위치의 요소 1를 증가시킨다.

출력 : ["muzi"의 이메일 받은개수, "frodo"의 이메일 받은개수, "apeach"의 이메일 받은개수, "neo"의 이메일 받은개수] 

idMap의 위치 값을 받아서 위치 범위의 요소를 1를 증가시킨다.

코드

import java.util.*;
class Solution {
    public int[] solution(String[] id_list, String[] report, int k) {
        int[] answer = new int[id_list.length];
        Map<String, HashSet<String>> map = new HashMap<>();
        Map<String, Integer> idxMap = new HashMap<>();
        for(int i=0;i<id_list.length;i++){
            String name = id_list[i];
            map.put(name,new HashSet<>());
            idxMap.put(name,i);
        }
        
        for(String rn : report){
            String[] reportName = rn.split(" ");
            String from = reportName[0];
            String to = reportName[1];
            map.get(to).add(from);
        }
        
        for(int i=0;i< id_list.length;i++){
            HashSet<String> reportEmail = map.get(id_list[i]);
            if(reportEmail.size() >=k){
                for(String name : reportEmail){
                    answer[idxMap.get(name)]++;
                }
            }
        }
        return answer;
    }
}

'[PGS]' 카테고리의 다른 글

[JAVA] 프로그래머스 - Summer/Winter Coding(~2018) 배달  (0) 2023.04.27
[JAVA] 기지국 설치  (0) 2023.04.23
[프로그래머스] 성격 유형 검사하기 자바  (0) 2023.04.03
[PGS] 문자열 내 P와 Y의 개수  (0) 2022.12.24
[PGS] 자연수 뒤집어 배열로 만들기  (0) 2022.12.20
    '[PGS]' 카테고리의 다른 글
    • [JAVA] 기지국 설치
    • [프로그래머스] 성격 유형 검사하기 자바
    • [PGS] 문자열 내 P와 Y의 개수
    • [PGS] 자연수 뒤집어 배열로 만들기
    젬니
    젬니

    티스토리툴바