PR - 위장

Goody·2021년 5월 5일
0

알고리즘

목록 보기
96/122

문제 및 예시

https://programmers.co.kr/learn/courses/30/lessons/42578


풀이

  • 해시맵을 사용해서 이미 맵에 존재하는 종류면 +1, 아니면 1로 세팅해준다.
  • 해시맵의 값들을 각각 1씩 빼주고(해당 옷을 안 입을 경우 포함), 1로 초기화한 answer에 곱해준다.
  • 옷은 적어도 한 벌은 입으므로 answer 에서 1을 더해준다.

코드

function solution (clothes) {
  let answer = 1;
  const hashMap = new Map();
  clothes.forEach((el) => {
    if (hashMap.has(el[1])) hashMap.set(el[1], hashMap.get(el[1]) + 1);
    else hashMap.set(el[1], 1);
  });

  for (let x of hashMap.values()) {
    answer *= x + 1;
  }
  return answer - 1;
};

0개의 댓글