250x250
Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- priority_queue
- Calendar
- sql
- Properties
- GC로그수집
- spring boot
- 큐
- Union-find
- BFS
- deque
- CSS
- math
- 힙덤프
- union_find
- string
- map
- 리소스모니터링
- alter
- 스프링부트
- JPA
- set
- scanner
- NIO
- html
- dfs
- date
- 스택
- List
- Java
- javascript
Archives
- Today
- Total
매일 조금씩
프로그래머스 level1 : 신고 결과 받기 - Java 본문
728x90
반응형
import java.util.*;
import java.util.Map.*;
class Solution {
public int[] solution(String[] id_list, String[] report, int k) {
List<Integer> answer = new ArrayList<>();
HashMap<String, Set<String>> reportedList = new HashMap<>();
HashMap<String, Integer> mailed = new HashMap<>();
// reportedList에 '피신고자=[신고자들]' 넣기
for(String names: report){
String reporter = names.split(" ")[0];
String reported = names.split(" ")[1];
HashSet<String> reporterList = new HashSet<>(
reportedList.getOrDefault(reported, Collections.emptySet())
);
reporterList.add(reporter);
reportedList.put(reported, reporterList);
}
// reportedList 중 value 크기가 2이상인것은 mail 보내기 - Iterator
// Iterator<String> mapIter = reportedList.keySet().iterator();
// while(mapIter.hasNext()){
// String key = mapIter.next();
// if(reportedList.get(key).size() >= k){
// Iterator<String> setIter = reportedList.get(key).iterator();
// while(setIter.hasNext()){
// String value = setIter.next();
// mailed.put(value, mailed.getOrDefault(value, 0) + 1);
// }
// }
// }
// reportedList 중 value 크기가 2이상인것은 mail 보내기 - Entry
for(Entry<String, Set<String>> entry : reportedList.entrySet()){
if(entry.getValue().size() >= k){
Iterator<String> setIter = entry.getValue().iterator();
while(setIter.hasNext()){
String value = setIter.next();
mailed.put(value, mailed.getOrDefault(value, 0) + 1);
}
}
}
// id_list 의 이름 순서대로 메일받은 수 answer에 넣기
for(String name: id_list){
answer.add(mailed.getOrDefault(name, 0));
}
return answer.stream().mapToInt(Integer::intValue).toArray();
}
}
728x90
반응형
'알고리즘' 카테고리의 다른 글
프로그래머스 level1 : 자연수 뒤집어 배열로 만들기 - Java (0) | 2023.06.02 |
---|---|
프로그래머스 level1 : 정수 제곱근 판별 - Java (0) | 2023.06.02 |
프로그래머스 level1 : 성격 유형 검사하기 - Java (0) | 2023.06.02 |
프로그래머스 level1 : 푸드 파이트 대회 - Java (0) | 2023.06.02 |
프로그래머스 level1 : 과일 장수 - Java (0) | 2023.06.02 |