Lv.2 : 의상 [JavaScript]

2024. 11. 6. 22:46Algorithm/프로그래머스

반응형

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


문제 풀이

function solution(clothes) {
    var clo = {};
    for(var c of clothes){
        clo[c[1]] ? clo[c[1]] += 1 : clo[c[1]] = 1;
    }
    
    var arr = Object.values(clo);
    
    return arr.reduce((acc, cur) => acc * (cur + 1), 1) - 1;
}

clothes를 돌면서 clo 객체를 만든다.

의상의 이름은 중요하지 않으므로, 의상의 종류와 그 종류에 해당하는 의상의 개수를 저장한다.

각각의 의상에 대해서, '입는다'와 '입지않는다' 두 가지 선택지가 있으므로

reduce를 통해 모든 의상의 cur + 1들을 곱하면 입을 수 있는 모든 경우의 수가 나온다.

아무것도 입지 않을 수는 없기 때문에 -1을 해준 뒤 리턴  

 

반응형

'Algorithm > 프로그래머스' 카테고리의 다른 글

Lv.2 : 튜플 [JavaScript]  (0) 2024.11.10
Lv.1 : 모의고사 [JavaScript]  (1) 2024.11.07
Lv.2 : 프로세스 [JavaScript]  (0) 2024.11.03
Lv.2 : [1차] 캐시 [JavaScript]  (0) 2024.11.02
Lv.2 : 괄호 회전하기 [JavaScript]  (0) 2024.10.28