https://school.programmers.co.kr/learn/courses/30/lessons/64065
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
function solution(s) {
var answer = [];
let map = new Map();
// s를 각 요소 배열의 원소 개수 순으로 정렬하기
// s.sort((a,b)=>a.length-b.length);
// console.log(s)
s = s.replaceAll('{','')
s = s.replaceAll('}','')
s = s.split(',')
// s = JSON.parse(s);
// s.sort((a,b)=>a.length-b.length);
console.log(s)
// s = s.split(',')
// s = s.replace(/{|}/g,'')
// console.log(s)
// s = s.replace(/{|}/g,'')
for(let x of s){
map.set(x,(map.get(x) || 0)+1)
}
let arr = [...map.entries()] // Array.from(map.entries())
arr.sort((a,b)=>b[1]-a[1])
return arr.map((el)=> Number(el[0]));
}
처음에는 기본 형태를 남겨두고 푸는 방법을 생각했는데,
{{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}} => [[2], [2, 1], [2, 1, 3], [2, 1, 3, 4]]
이 집합은 문자열에 담겨있기 때문에 해당 방법으로 풀기에는 무리가 있었다.
"{{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}}"
그래서 replace와 split을 이용해 숫자만 남기고,
"2, 2, 1, 2, 1, 3, 2, 1, 3, 4"
요소의 갯수대로 배열에 나열하는 방법으로 구현했다.
'algorithm' 카테고리의 다른 글
부족한 금액 계산하기 (feat. 가우스 계산법 활용) (0) | 2023.12.19 |
---|---|
약수의 개수와 덧셈 (feat. 제곱수 활용) (0) | 2023.12.19 |
스킬 트리 (0) | 2023.09.27 |
구명보트 (0) | 2023.09.25 |
문자열 내 마음대로 정렬하기 (feat. JS sort 함수) (0) | 2023.09.05 |