: Web Developer & Data Scientist
알고리즘/해시

[JavaScript] Programmers 베스트 앨범

개요 - 난잡하게 풀었다. 가장 확실하지만 그만큼 무식하기도 한 풀이. - 객체의 정의는 주요 객체인 genre_obj로 정의했으며, 인덱스와 플레이타임 객체를 요소로 갖는 배열이 프로퍼티 값. genre_obj = {classic: [ {idx:--, play_time: --} ...], pop: [...]}; - sort 메서드를 이용해서 play_time 순으로 내림차순해준다. (이때 비교함수 작성시, return 값을 지정 안해주면 적용 안됨 주의하자) - sum_arr 배열이 장르 정보와 플레이시간 총합을 객체의 형태로 담고 있도록 한 후, 마찬가지로 sort 메서드를 통해 내림차순 해준다. - sum_arr 배열의 요소들을 key값으로 genre_obj의 요소들을 조건에 맞게 꺼내어 answe..

알고리즘/해시

[JavaScript] Programmers 위장

개요 - 이제 좀 알거같은데. 의상은 중복이 되지 않으므로 갯수만 중요해진다. 다루기 편한 객체로 변경하는 작업 진행 - 답은 구하는 게 아차 싶은데, 확률과 통계를 다 까먹어서 좀 헤맸다. JS CODE (1) - 내 풀이 function solution(clothes) { let answer = 1; const clothes_obj = clothes.reduce((result, value) => { result[value[1]] = result[value[1]]? result[value[1]] + 1 : 2; return result; }, {}); for (let key in clothes_obj) { answer *= clothes_obj[key]; } return answer - 1; } - r..

알고리즘/해시

[JavaScript] Programmers 완주하지 못한 선수

개요 - 문제는 굉장히 심플하며 풀이를 향한 길 또한 그리 다양하지 않아 보인다. - 해시 : 데이터를 다루는 기법 중 하나로, 검색과 저장을 아주 빠르게 진행함(대표적으로 Map 객체) + 데이터를 저장할 때 key-value형태로 데이터가 존재하고, key값이 배열의 인덱스로 저장되기 때문에 검색과 저장이 빠르게 일어남 JS CODE (1) function solution(participant, completion) { const map = new Map(); for(let i = 0; i < participant.length; i++) { let a = participant[i], b = completion[i]; map.set(a, (map.get(a) || 0) + 1); map.set(b, (..

Martin Hoffman
'알고리즘/해시' 카테고리의 글 목록