튜플(Tuple)
셀 수 있는 수량의 순서 있는(순서를 따르는 요소의) 열거
중복되는 원소가 있을 수 있음
원소에 정해진 순서가 있으며 해당 순서가 다르면 다른 튜플
튜플 원소의 개수는 유한함
중복되는 원소가 없는 n-튜플이 주어질 때 {{a1},{a1,a2},{a1,a2,a3}...}으로 표현 가능
집합은 원소의 순서가 바뀌어도 상관없음
function solution(s) {
// s를 먼저 2차 배열로 만들기
// 길이가 작은 것부터 순서대로, 중복되는거 없이 넣기
const arr = JSON.parse(s.replace(/{/g,'[').replace(/}/g,']'))
arr.sort((a,b)=>a.length - b.length);
const tuple = [];
// map = 새로운 배열 반환
// forEach = 반환 없음
arr.forEach((ele)=>{
ele.forEach((element)=>{
if(!tuple.includes(element)){
tuple.push(element)
}
})
})
return tuple
}
replace 함수의 두번째 인자로 '{'이면 '[', '}'이면 ']'로 바꾸는 replacer 주기
const tupleFrom = (str) =>
str.slice(2, -2).split('},{')
.map((it) => toNumbers(it))
.sort(accendingByLength)
.reduce((acc, cur) =>
[...acc, ...cur.filter((it) => !acc.includes(it))], []);
const toNumbers = (str) => str.split(',').map(it => Number(it));
const accendingByLength = (arr1, arr2) => arr1.length - arr2.length;
const solution = (s) => tupleFrom(s);
주어지는 문자열 s에서 가장 바깥을 감싸는 '{{' '}}' 를 빼고 '}{'를 기준으로 배열화 시키는 방법.