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

제한 사항

입출력 예

풀이
import java.util.HashMap;
class Solution {
public int solution(String[][] clothes) {
HashMap<String, Integer> clothMap = new HashMap<>();
for (String[] cloth : clothes)
clothMap.put(cloth[1], clothMap.getOrDefault(cloth[1], 0) + 1);
return clothMap.values().stream()
.mapToInt(i -> i + 1)
.reduce((i, j) -> i * j)
.getAsInt() - 1;
}
}
후기
각 부위의 옷을 입는 방법은 안 입거나, 1번째를 입거나, 2번째를 입거나... 인데 모두 안 입는 경우는 제외하니까 마지막에 1을 빼준다.
한줄 스트림으로 Map도 사용하지 않고 푼 풀이가 있는데 collect()에 대해서 공부를 좀 해봐야 겠다.
'코딩테스트 (프로그래머스) > Java' 카테고리의 다른 글
| [프로그래머스][JAVA][Lv. 1] 최대공약수와 최소공배수 (0) | 2023.08.06 |
|---|---|
| [프로그래머스][JAVA][Lv. 2] 과제 진행하기 (0) | 2023.08.04 |
| [프로그래머스][JAVA][Lv. 2] 올바른 괄호 (0) | 2023.08.03 |
| [프로그래머스][JAVA][Lv. 2] 문자열 압축 (0) | 2023.08.02 |
| [프로그래머스][JAVA][Lv. 2] 짝지어 제거하기 (0) | 2023.08.01 |