2019 카카오 개발자 겨울 인턴십 - 튜플

Happhee·2022년 2월 22일
0

[ Lv2 ] programmers

목록 보기
29/32
post-thumbnail

📝 튜플


나의 JS 코드

첫번째 시도

function solution(s) {
    var answer = [];
    let s_array = [];
    let number = "0123456789";
    let num_arr = [];
    let num ='';
    for(let i = 0 ;  i< s.length-1 ; i++){
    
        if( s[i] === '{'){
            num_arr = [];
        }
        else if(number.indexOf(s[i])>=0 ){
            num += s[i];
            if(s[i+1] === ',' || s[i+1] === '}'){
                num_arr.push(parseInt(num));
                num = '';
            }
        
        }
        

        else if (s[i] === '}' && (s[i+1] === ',' || i+1 === s.length-1))
            s_array.push(num_arr);
        
        
    }
  
  
     s_array = s_array.sort((a,b)=> a.length - b.length);
   
   
    
    for(let arr of s_array){
        for(let number of arr){
            if(answer.indexOf(number) === -1)
                answer.push(number);
        }
    }
    return answer;
}

두번째 시도

function solution(s) {
    let answer = [];
    //맨 앞, 뒤 괄호 없애고, 경우의수로 분리한 뒤 
    // 이에 대한 길이를 기준으로 오름차순 정렬
    s = s.replace("{{", "").replace("}}", "").split("},{").sort((a, b) => a.length - b.length);
    // 문자 숫자를 숫자들로만 바꾸고,
    // 최종 반환할 배열에 그 값이 없으면 넣어주기
    s.forEach((data) => {
        data = data.split(/[^0-9]/).map((strNumber) => parseInt(strNumber));
        answer.push(...data.filter((num) => !answer.includes(num)))
    })
    return answer;
}
profile
즐기면서 정확하게 나아가는 웹프론트엔드 개발자 https://happhee-dev.tistory.com/ 로 이전하였습니다

0개의 댓글