DLife Planet

[코딩연습] 해시3 프로그래머스 - 위장 본문

카테고리 없음

[코딩연습] 해시3 프로그래머스 - 위장

Western_Gem 2020. 12. 1. 18:42
반응형

종류별로 한가지 조합을 입은 상태에서 매일 다른 조합의 옷을 입어야 한다가 문제입니다.

import java.util.*;
import static java.util.stream.Collectors.*;

class Solution {
    public int solution(String[][] clothes) {
        
        // stream & 람다식 풀이법이라 그냥 박수만 칠지도
        // p -> p[1] "종류"가 그루핑 기준이 되겠다는 뜻 {"이름", "종류"}
        // mapping(p -> p[0], counting()) "이름" 을 기준으로 갯수를 새겠다는 뜻
        // values() 이중에 뒤에 값을 쓰겠다는 뜻
        // stream() 객체로서 다시 불러온다는 뜻
        // collect 값을 불러와서, x는 종류, y는 이름을 그준으로 잡음
        // 종류 + 종류별 이름 경우의수 - 초기값
        
        
        return Arrays.stream(clothes)
                .collect(groupingBy(p -> p[1], mapping(p -> p[0], counting())))
                .values()
                .stream()
                .collect(reducing(1L, (x, y) -> x * (y + 1))).intValue() - 1;
    }
}
반응형
Comments