Level2 - 튜플

손대중·2022년 5월 12일
0

문제 링크

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;
}

0개의 댓글