티스토리 뷰
문제 링크입니다 : 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
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 2017 팁스타운 짝지어 제거하기 (0) | 2020.05.23 |
---|---|
프로그래머스 - 가장 큰 수 (JavaScript) (0) | 2020.05.07 |
프로그래머스 - 스킬트리 (JavaScript) (0) | 2020.05.07 |
프로그래머스 - 기능개발 (JavaScript) (0) | 2020.05.07 |
프로그래머스 - 쇠막대기 (JavaScript) (0) | 2020.05.07 |
댓글