https://programmers.co.kr/learn/courses/30/lessons/67257
1) s의 맨 앞과 맨 뒤를 잘라낸다.
2) s를 배열로 가공한다.
3) 정렬 후 반복문을 통해 tuple 배열에 들어있지 않은 요소를 하나씩 추가한다.
4) 튜플을 반환한다.
function solution(s) {
s = s.slice(2);
s = s.slice(0, s.length - 2);
let tuple = [];
let tupleArr = s.split("},{").map(str => str.split(",")).map(arr => arr.map(letter => Number(letter))).sort((a, b) => a.length - b.length).forEach(arr => arr.forEach(num => {
if(!tuple.includes(num)){
tuple.push(num);
}
}))
return tuple;
}
function solution(s) {
return JSON.parse(s.replace(/{/g, '[').replace(/}/g, ']'))
.sort((a, b) => a.length - b.length)
.reduce((arr, v, n) => {
if (n) {
return arr.concat(v.filter(f => !arr.includes(f)));
}
return v;
}, []);
}
const solution = s => tupple(changeMatrix(getSets(s)));
const getSets = s => {
const sets = s.match(/{[\d,]+}/g);
return sets
.map(set => set.match(/[\d]+,?/g).map(v => parseInt(v)))
.sort((a, b) => a.length - b.length);
};
const changeMatrix = sets => sets.reduce((_, set) => _.concat(set), []);
const tupple = arr => [
...arr.reduce((set, value) => set.add(value), new Set())
];
new Set
Array와 다르게 Set은 같은 value를 두 번 포함할 수 없다. 또한 Set에는 index가 존재하지 않는다.