https://programmers.co.kr/learn/courses/30/lessons/64065?language=javascript
문제의 핵심은 원소의 length 대로 정렬한 이후에 result 에 없는 숫자를 하나 하나 추가하면 된다.
n 번째 원소는 n-1 번째 원소에서 숫자 하나만 추가한 것이므로....
다른 사람 풀이를 보니 reduce 를 사용... 아 맞다 이게 요 문제의 경우에 딱 맞겠네;;;
추가로 {} 를 [] 로 바꾸고 JSON.parse 하면 간단히 array 로 변환... 역시 고수들은 많구만
모든 프로그래머스 문제 관련 코드들은 GitHub 링크 에 있음.
function solution(s) {
// string 에서 숫자만 뺀 array 로 정리
let tupleSet = s
.slice(1, s.length - 1)
.match(/\{(\d|,)+\}/g)
.map(t => t.replace(/\{|\}/g, '').split(','))
.sort((t1, t2) => t1.length - t2.length);
const result = [];
tupleSet.map(tuple => {
while (tuple.length > 0) {
const item = Number(tuple.shift());
if (!result.includes(item)) {
result.push(item);
}
}
});
return result;
}