[프로그래머스] Lv2 - 튜플

제리·2021년 1월 10일
0

프로그래머스

목록 보기
14/25

https://programmers.co.kr/learn/courses/30/lessons/64065

function solution(s) {
    var answer = [];
    s = s.replace(/{/g,'[')
    s = s.replace(/}/g,']')
    const arr = JSON.parse(s)
    arr.sort((a,b)=> a.length-b.length)
    let visited = {}
    for(let tuple of arr){
        for(let num of tuple){
            if(visited[num]) continue
            visited[num] = true
            answer.push(num)
        }
    }
    return answer;
}

처음에는 문제를 이해를 잘 못했는데 쉽게 말해서 배열에 값이 하나씩 추가되는데 이 추가 되는 값을 찾아서 추가되는 순서를 출력하면 된다고 생각하면 된다.
s의 값이 중괄호를 사용하여 있어서 나는 배열로 사용하기 위해서 대괄호로 변환한다음 string을 JSON으로 바꿔주는 함수를 사용해서 실제 배열로 변환하였다.
그리고 배열이 증가되는 순서를 파악하기위해서 배열을 그안에 속한 배열의 길이로 오름차순 정렬했다.
그리고 visited를 이용해서 이미 있는 값은 넘기고 새롭게 추가된 값을 찾아서 answer에 추가하도록 하였다.
시간복잡도는 O(N^2)이다

profile
흐릿한 잉크가 뚜렷한 기억보다 낫다

0개의 댓글