문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/92334


제한 사항

입출력 예

풀이
import java.util.ArrayList;
import java.util.stream.*;
import java.util.HashMap;
import java.util.Arrays;
class Solution {
public int[] solution(String[] id_list, String[] report, int k) {
HashMap<String, ArrayList<String>> reportMap = new HashMap<>();
HashMap<String, Integer> resultMap = new HashMap<>();
Arrays.stream(report).distinct().forEach((str) -> {
String[] reportArr = str.split(" ");
if (!reportMap.containsKey(reportArr[1]))
reportMap.put(reportArr[1], new ArrayList<String>());
reportMap.get(reportArr[1]).add(reportArr[0]);
});
reportMap.values().stream()
.filter(list -> list.stream().distinct().collect(Collectors.toList()).size() >= k)
.forEach((list) -> { list.forEach(str -> resultMap.put(str, resultMap.getOrDefault(str, 0) + 1)); });
return Arrays.stream(id_list).mapToInt(str -> resultMap.getOrDefault(str, 0)).toArray();
}
}
후기
또 4점짜리... 사람들이 많이 풀었거나 한번에 정답을 받은 인원이 많으면 점수를 많이 안 준다고 한다. 그나저나 요즘 스트림 사용하는게 재밌어서 계속 쓰게 된다. 이 문제는 중복 제거만 잘 하면 통과할 수 있는 문제였다.
'코딩테스트 (프로그래머스) > Java' 카테고리의 다른 글
| [프로그래머스][JAVA][Lv. 1] 최소직사각형 (0) | 2023.07.07 |
|---|---|
| [프로그래머스][JAVA][Lv. 1] 나머지가 1이 되는 수 찾기 (0) | 2023.07.07 |
| [프로그래머스][JAVA][Lv. 1] 성격 유형 검사 (0) | 2023.07.07 |
| [프로그래머스][JAVA][Lv. 1] 숫자 짝꿍 (0) | 2023.07.06 |
| [프로그래머스][JAVA][Lv. 1] 삼총사 (0) | 2023.07.05 |