[Programmers / Level 2] 42578. 의상 (Java)

이하얀·2025년 1월 21일
1

🕊️ 프로그래머스

목록 보기
92/97

💡 Info




입출력 조건




입출력 예시




문제 이해


  • 조합 문제로 의상 조합 최대 수를 구하는 문제


알고리즘


풀이 시간 : 27분

  • Arrays.stream 이용
    • 의상 종류에 따라 그룹핑, 의상 이름 맵핑을 통해 그룹화 개수 구하기
    • collect로 조합 개수 구하기
      • reducing 연산을 통해 의상을 입지 않는 경우를 포함
import java.util.*;
import static java.util.stream.Collectors.*;

class Solution {
    public int solution(String[][] clothes) {
        Map<String, Long> categoryCount = Arrays.stream(clothes)
                .collect(groupingBy(c -> c[1], counting()));

        return categoryCount.values().stream()
                .map(count -> count + 1)
                .reduce(1L, (a, b) -> a * b)
                .intValue() - 1;
    }
}


결과


profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE&Data Science 개발 기록 노트☘️

0개의 댓글

관련 채용 정보