티스토리 뷰

문제 링크입니다 : https://programmers.co.kr/learn/courses/30/lessons/42578?language=javascript

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

한번이라도 들어온 옷 종류를 배열로 일일이 저장해서 매번 순회를 하게 되면 한번 순회 할 때마다, O(N)이 걸리고 전체 시간 복잡도는 O(N^2)이 된다. 

 

순서는 상관없고 있는지 없는지만 판단하고 싶으면 map과 set 자료구조가 한번 탐색에 O(lgN)이 가능하다 따라서 전체 시간복잡도를 O(NlgN)으로 줄일 수 있다.

 

 

 

function solution(clothes) {
    var answer = 0;
    const m = new Map();
    
    clothes.forEach(function(el) {
        let kinds = el[1];
        if(m.has(kinds)) {
            m.set(kinds, m.get(kinds) + 1);
        } else {
            m.set(kinds, 1);
        }
    });
    
    let sum = 1;
    
    for(let val of m.values()) {
        sum *= (val + 1);
    }
    answer = sum - 1;
    
    
    return answer;
}

 

 

 

개발 환경 : vscode

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함