LEVEL2_프로그래머스_위장

Written on September 21, 2019

문제c

스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다.

예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다.

종류 이름
얼굴 동그란 안경, 검정 선글라스
상의 파란색 티셔츠
하의 청바지
겉옷 긴 코트

스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요.

풀이

function solution(clothes) {
  let answer = 1;
  const clothesObj = {};
  for (let i = 0; i < clothes.length; i++) {
    if (clothesObj[clothes[i][1]]) {
      clothesObj[clothes[i][1]] += 1;
    } else {
      clothesObj[clothes[i][1]] = 1;
    }
  }
  for (let key in clothesObj) {
    answer *= clothesObj[key] + 1;
  }
  // let keys = Object.keys(clothesObj)
  // const func = (index, pair) => {
  //     if(!keys[index]){
  //         answer++;
  //         return;
  //     }
  //     for(let i = 0; i <= clothesObj[keys[index]]; i++){
  //         func(index+1)
  //     }
  // }
  // func(0);
  return answer - 1;
}


문제바로가기

위장

👩🏻‍💻 배우는 것을 즐기는 프론트엔드 개발자 입니다
부족한 블로그에 방문해 주셔서 감사합니다 🙇🏻‍♀️

in the process of becoming the best version of myself