티스토리 뷰

문제출처 - https://programmers.co.kr/learn/courses/30/lessons/64065

 

프로그래머스

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

programmers.co.kr

function solution(s) {
    let answer = [];
    let arr = [];
    
    // 문자열 -> 배열
    let temp = [];
    let num = "";
    for(let i=0; i<s.length; i++) {
        if(s[i] === '{') continue;
        else if(s[i] === '}') {
            temp.push(Number(num));
            arr.push(temp);
            temp = [];
            num= "";
        }
        else if(s[i] === ',') {
            if(s[i-1] !== '}') {
                temp.push(Number(num));
                num = "";
            }            
        }
        else {
            num += s[i];
        }
    }
    arr.pop();
    
    let cnt = 1;  // 집합 개수
    let ans = []; // tmp랑 비교하기 위한 배열
    while(arr.length !== 0) {
    	// 집합 개수 작은거부터 찾기
        let tmp = []
        for(let i in arr) {
            if(arr[i].length === cnt) {
                tmp = arr[i];
                arr.splice(i, 1);
                break;
            }
        }
        
        // tmp랑 ans 비교
        tmp.sort();
        ans.sort();
        for(let i in tmp) {
            if(tmp[i] !== ans[i]) {
                answer.push(tmp[i]);
                ans.push(tmp[i]);
                break;
            }
        }
        cnt += 1;
    }
    
    return answer;
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함