[프로그래머스/Javascript] 위장

알고리즘

Posted by Kyun2da on July 6, 2020

1️⃣서론

프로그래머스 level2 문제 위장입니다. Javascript를 이용하여 해결하였습니다.

2️⃣문제 설명

위장1 위장2

3️⃣풀이

입을 수 있는 옷의 가지수를 구하는 문제입니다. 최소 한가지의 옷은 입어야하므로 모든 경우의 수에서 하나도 입지않는 경우의 수 1을 빼주는 형식으로 구하였습니다.

4️⃣ 내가 푼 소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function solution(clothes) {
  let answer = 1;
  const obj = {};

  //옷을 개수별로 분리 + 1  (안입는 경우가 있으므로 +1을 해줘야한다.)
  for (let i = 0; i < clothes.length; i++) {
    obj[clothes[i][1]] = (obj[clothes[i][1]] || 1) + 1;
  }

  for (let key in obj) {
    answer *= obj[key];
  }
  //console.log(obj);

  //아예 안입는 경우는 빼줘야하므로 -1을 해준다.
  return answer - 1;
}

5️⃣ 결론

백준에서 비슷한 문제를 본 적이 있는지 어디서 많이 본 문제인 것 같아서 쉽게 풀었습니다. 경우의 수를 생각할 때 복잡하게 생각하지 않는다면 쉽게 풀 수 있었던 문제인 것 같습니다.

6️⃣ 마치며..

질문과 지적은 환영합니다. 이 문제는 최적의 정답일 수도 아닐수도 있습니다.
궁금한게 있으시면 아래 댓글 남겨주세요.🙏
댓글은 저에게 큰 힘이 됩니다!
감사합니다. ❤️