https://programmers.co.kr/learn/courses/30/lessons/42578
코딩테스트 연습 - 위장
programmers.co.kr
코드
function solution(clothes) {
var answer = 1;
var obj = {};
for(var i=0; i<clothes.length; i++){
if(obj[clothes[i][1]] >= 1){
obj[clothes[i][1]] += 1; //객체에 이미 같은 키값이 있다면 +1을 해준다.
} else{
obj[clothes[i][1]] = 1;// 새로운 종류의 옷(키 값)이라면 1로 만든다.
}
}
for(var key in obj){
answer *= (obj[key]+1);//각 옷 종류마다 안입는 경우를 포함
}
return answer -1; //전체 경우의 수에서 모두 안입는 경우 제외
}
문제풀이
- 빈객체(obj) 생성
- 각 옷종류마다 안입는 경우가 있어서 +1씩 한 값들을 곱해준다 => 모든경우의 수가 만들어짐
- answer -1을 하는 이유 : 문제에서 옷을 무조건 하나는 입고 있다고 함, 모든 경우의 수에서 아무것도 입지않는 경우의 수 1을 빼줌
'알고리즘 > 문제풀이' 카테고리의 다른 글
이진트리) Maximum Depth of Binary Tree [js] (0) | 2021.08.27 |
---|---|
프로그래머스 모의고사 javascript (0) | 2021.08.21 |
프로그래머스) K번째 수 Javascript (0) | 2021.08.20 |
완주하지 못한 선수 JS, javascript (0) | 2021.08.14 |
알고리즘 스터디 1주차 (0) | 2021.08.06 |