[프로그래머스] 해쉬 - 위장
Algorithm/Algorithm Study

[프로그래머스] 해쉬 - 위장

반응형

2021_11_14 알고리즘 스터디 문제 풀이

문제 URL 

 

코딩테스트 연습 - 위장

 

programmers.co.kr

문제

 

수도코드

clothes[i][1]  > 의상의 종류
clothes[i][0] > 의상의 이름

obj 빈객체 선언
포문으로 clothes를 순회
  obj[el[1]] 가 이미 있다면 기존 값 + 1
  obj[el[1]] 가 없다면 값은 0;

obj를 순회, 경우의 수를 구한다
  result 변수에 *= (obj[key] + 1) // 1은 해당 부위 파츠를 착용하지 않는 경우

최종 result - 1 리턴 // 1은 모두 착용하지 않는 경우

 

풀이

function solution(clothes) {
    let result = 1;
    let obj = {};
    
    for (let el of clothes) {
        obj[el[1]] = (obj[el[1]] || 0) + 1;
    }
    
    for (let key in obj) {
        result *= (obj[key] + 1)
    }
    
    return result - 1;
}

 

결과

시간 복잡도 O(n)의 코드로 구현을 완료했다.

반응형