나의풀이
function solution(s) {
let regEx = /[{}]/g
let map = s.replace(regEx, '').split(',').reduce((acc,e,i) =>
acc.set(e,acc.get(e) + 1 || 1) ,new Map())
let arr = Array.from(map).sort((a,b) => b[1] - a[1]);
return arr.map((e,i) => +e[0])
}
다른 사람의 풀이
function solution(s) {
return JSON.parse(s.replace(/[{}]/g,(a) => a == '{' ? '[' : ']'))
.sort((a,b) => a.length - b.length)
.reduce((acc,e) =>(
acc.concat(e.filter(x => !acc.includes(x)))
) ,[])
}
내가 사용한 방식:{}를 모두 찾아 없앤 뒤 ,를 기준으로 split한다. 배열에 저장된 요소들 중 가장 많이 포함되어 있는 숫자순으로 결과값을 저장하면 된다.
다른 사람의 풀이를 통해 json형식의 문자열을 js객체형식으로 parse하면 형태를 그대로 보존한 array를 반환할 수 있다는 것을 알았다.