https://programmers.co.kr/learn/courses/30/lessons/64065
function solution(s) {
var answer = [];
var sTmp = JSON.parse(JSON.stringify(s));
sTmp = sTmp.split(",{").join('');
sTmp = sTmp.split("}");
sTmp[0] = sTmp[0].split("{").join('');
sTmp = sTmp.filter(a => a.length > 0);
sTmp = sTmp.map(a => a.split(","));
sTmp.sort((a, b) => a.length - b.length);
sTmp.map(x => {
if (answer.length === 0) answer.push(...x);
x.map(y => {
if (!answer.includes(y)) {
answer.push(y);
}
})
});
answer = answer.map(Number);
return answer
}
문제의 문자열을 다루는 능력을 평가하는 문제이다.
{
,}
, ,
이 세개의 문자를 다른형태로 replace하거나 제거하거나 배열로 바꿔가면서 문제를 해결해나가야한다.
,{
라고 split하면 맨앞의 문자만 {{숫자
이러한 형태로 남게되고 나머지는 문자열 형태로 남게된다.}
)라고 하게되면 위와 같다.{{
부분을 제거한다.원소를 숫자로 바꾸고 끝!
...a
라고 하는 spread 연산자는 중복을 걸러내지 못한다.