프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제풀이
1. HashMap < String , HashSet<String> > hm 를 선언사여 key값에 피신고자 , value 값에 신고자를 입력 . ( A 신고자가 B 피신고자를 중복하여 신고하여도 1회 신고만 인정해야 하므로 HashSet 으로 중복 제거 )
2. hm 의 사이즈가 k 보다 크면 hm의 value 값에 있는 신고자들은 메시지를 받을 대상으로 체크 ( 카운팅 )

나의풀이 ( 코드 )
import java.util.*;
class Solution {
public int[] solution(String[] id_list, String[] report, int k) {
int[] answer = new int[id_list.length];
HashMap<String, HashSet<String>> hm = new HashMap<>();
HashMap<String, Integer> idx = new HashMap<>();
for (int i = 0; i < id_list.length; i++) {
idx.put(id_list[i], i);
hm.put(id_list[i], new HashSet<>());
}
for (int i = 0; i < report.length; i++) {
String a = report[i].split(" ")[0]; // 신고자
String b = report[i].split(" ")[1]; // 피신고자
hm.get(b).add(a);
}
for (String key : hm.keySet()) {
if (hm.get(key).size() >= k) {
for (String hsKey : hm.get(key)) {
answer[idx.get(hsKey)]++;
}
}
}
return answer;
}
}'알고리즘 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스/JAVA 자바] 폰켓몬 (0) | 2024.04.25 |
|---|---|
| [프로그래머스/JAVA 자바] 달리기 경주 (0) | 2024.04.23 |
| [프로그래머스/JAVA 자바] 성격 유형 검사하기 (2) | 2024.04.19 |
| [프로그래머스/JAVA 자바] 크레인 인형뽑기 게임 (0) | 2024.04.18 |
| [프로그래머스/JAVA 자바] 체육복 (2) | 2024.04.17 |