[프로그래머스] 의상 (JS)

hhkim·2023년 8월 19일
0

Algorithm - JavaScript

목록 보기
107/188
post-thumbnail

풀이 과정

각 의상 종류에 아무것도 입지 않는 선택지 1을 더한 후 무작위로 의상 종류만큼을 뽑는 경우의 수 (이때 어떤 종류도 입지 않는 경우 하나는 제외해야 함)
1. 의상 종류를 키, 개수를 값으로 하는 객체 생성
2. 의상 배열에 대해 반복하면서 개수 세기
이때 초깃값을 1로 두어서 아무것도 입지 않는 선택지를 추가
3. 1번 객체의 값 배열을 얻어서 모든 요소 곱하기: Object.values(), reduce()
4. 아무것도 입지 않는 선택지 1 빼기

코드

function solution(clothes) {
  const obj = {};
  clothes.forEach((e) => (obj[e[1]] = (obj[e[1]] || 1) + 1));
  return Object.values(obj).reduce((result, n) => result * n, 1) - 1;
}

0개의 댓글