프로그래머스 #Javascript - 튜플

SSO·2020년 5월 11일
0

프로그래머스 Lv2

목록 보기
23/46

문제

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

풀이

//2.성공
function solution(s) {
    var answer = [];
    
    //s를 배열로 전환
    var arrS = s.slice(2,s.length-2)
        .split("},{")
        .map(el => el.split(","));
    
    //arrS를 길이 오름차순 정렬
    arrS.sort((a,b)=>a.length-b.length);
    
    // 조건에 맞는 첫 숫자부터 차례로 배열에 집어넣기
    var newArr = arrS.map((el,i,arr) => {
        if(i !== 0 ){
            var num = el.filter(el => !arr[i-1].includes(el))[0];
            return parseInt(num);
        }else{
            return parseInt(el[0]);
        }
    });
    
    answer= newArr;
    return answer;
}



//1. 실패
function solution(s) {
    var answer = [];
    
    //s를 배열로 전환
    var arrS = s.slice(2,s.length-2)
        .split("},{")
        .map(el => el.split(","));
    
    //arrS를 길이 오름차순 정렬
    arrS.sort((a,b)=>a.length-b.length);
    
    //
    for(var i=0; i<arrS.length+1; i++){
        var num = arrS[0][0];
        answer.push(parseInt(num));
        arrS.shift();
        var newArr = arrS.map(el=>el.filter(el=>el!==num));
        arrS = newArr;
    }
    
    if(arrS.length !== 0){
       answer.push(parseInt(arrS[0][0])); 
    }

    return answer;
}

더 생각해보기

  1. 문자열과 배열의 전환
  2. arr.map() method의 인자
let new_array = arr.map(function callback( currentValue[, index[, array]]) {
    // return element for new_array
}[, thisArg])

currentValue, index, array에서 세번째 인자인 array는 map method가 불리는 해당 array를 의미함.

참고사항

profile
happy

0개의 댓글