일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
Tags
- lv2
- BASIC
- 그래프이론
- 알고리즘
- web
- 스택
- 그래프 이론
- 브루트포스 알고리즘
- 백준
- 다이나믹 프로그래밍
- 웹 프론트엔드
- 그래프 탐색
- BFS
- 너비 우선 탐색
- 그리디 알고리즘
- DP
- 프로그래머스
- JavaScript
- 자료구조
- 파이썬
- 정렬
- level2
- 자바스크립트
- 프로그래머스스쿨
- 딕셔너리
- CSS
- 문자열
- 구현
- programmers
- DFS
Archives
- Today
- Total
DevLog:-)
[프로그래머스][JavaScript]베스트앨범 본문
반응형
문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(genres, plays) {
const genreMap = new Map();
genres
.map((genre,index) => [genre,plays[index]])
.forEach(([genre,play], index)=>{
const data = genreMap.get(genre) || {total: 0, songs:[]};
genreMap.set(genre,{
total: data.total + play,
songs:[...data.songs,{play,index}]
.sort((a,b)=>b.play-a.play)
.slice(0,2)
})
})
console.log([...genreMap.entries()]);
return [...genreMap.entries()]
.sort((a,b)=>b[1].total - a[1].total)
.flatMap(item => item[1].songs)
.map(song => song.index)
}
✅check point
arr.map((p,i) => p) | 각각의 요소에 호출해서 그 값을 변환할 수 있게 해줌 |
arr.forEach((p,i)=>{console.log(p);}) | 배열 순 |
Map.prototype.get() |
-Map 객체에서 특정 요소를 반환 ex) const map1 = new Map(); map1.set('bar', 'foo'); console.log(map1.get('bar')); // Expected output: "foo" |
Map.prototype.entries() | -새 반복자 객체를 반환 -객체에는 Map 객체의 각 요소에 대한 [key, value] 쌍이 삽입 순서대로 포함됨 ex) const map1 = new Map(); map1.set('0', 'foo'); map1.set(1, 'bar'); const iterator1 = map1.entries(); console.log(iterator1.next().value); // Expected output: Array ["0", "foo"] console.log(iterator1.next().value); // Expected output: Array [1, "bar"] |
arr.flatMap() | -flatMap() 메서드는 배열의 각 요소에 주어진 콜백 함수를 적용한 다음 그 결과를 한 단계씩 평탄화하여 형성된 새 배열을 반환 ex) const arr1 = [1, 2, 1]; const result = arr1.flatMap((num) => (num === 2 ? [2, 2] : 1)); console.log(result); // Expected output: Array [1, 2, 2, 1] +map과의 차이 const arr1 = [1, 2, 1]; const result = arr1.map((num) => (num === 2 ? [2, 2] : 1)); console.log(result); // Expected output: Array [1, [2, 2], 1] |
💡idea
요구사항 | 1.같은 장르끼리 묶기 (map) 2.묶인 노래들을 재생 순으로 정렬하기 (sort) 3.노래를 2개개씩 자르기 (slice) |
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][JavaScript]N-Queen (0) | 2023.10.02 |
---|---|
[프로그래머스][JavaScript]입국심사 (0) | 2023.09.27 |
[프로그래머스][JavaScript]올바른 괄호 (1) | 2023.09.06 |
[프로그래머스][Javascript]구명보트 (0) | 2023.08.27 |
[프로그래머스][Javascript]카펫 (0) | 2023.08.21 |