본문 바로가기

Programmers

[프로그래머스] 튜플 (JS)

문제

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

코드

내 풀이

function solution(s) {
    const answer = [];

    s=s.replaceAll('{','[').replaceAll('}',']');
    
    const parsed = JSON.parse(s);
    parsed.sort((a,b)=>a.length-b.length);
    
    for(let i=0; i<parsed.length; i++){
        const item = parsed[i][0];
        answer.push(item);
        parsed.map(arr => {
            const idx = arr.indexOf(item);
            if(idx!==-1) arr.splice(idx,1);
            return arr;
        })
    }

    return answer;
}

 

 

다른 사람 풀이 참고

function solution(s) {
    const answer = [];

    s=s.replaceAll('{','[').replaceAll('}',']');
    
    const parsed = JSON.parse(s);
    parsed.sort((a,b)=>a.length-b.length);

    parsed.forEach(arr => {
        arr.forEach(item => {
            if(!answer.includes(item)) answer.push(item);
        })
    })
    return answer;
}

정리

내 첫번째 풀이처럼 splice를 해서 삭제연산을 할 필요가 없다.

includes를 사용해서 값이 answer에 들어있지 않은 경우 answer에 push해서 간단히 해결할 수 있다.

 

참조

https://school.programmers.co.kr/questions/43772