[프로그래머스] 230720 코딩테스트 연습

    SMALL

    1. 2의 영역

    function solution(arr) {
        var answer = [];
        
        let firstIndex = arr.indexOf(2); // 맨 처음부터 인덱스 검색
        let lastIndex = arr.lastIndexOf(2); // 맨 끝부터 인덱스 검색
        
        answer = arr.slice(firstIndex, lastIndex+1)
        
        if (answer.length == 0) { // 배열 안에 2가 없을 때
            answer.push(-1);
        }
        
        return answer;
    }

    - indexOf(검색할 값, 시작 위치) > 앞에서부터 검색할 값을 시작하는 속성. 시작 위치 생략 시, 0으로 인식 

    - lastIndexOf(검색할 값, 시작 위치) > 에서부터 검색할 값을 시작하는 속성. 시작 위치 생략 시, 맨 끝부터 시작

     

    2. 배열 조각하기

    // ** splice를 이용해 배열의 특정 항목 제거
    function solution(arr, query) {
        var answer = [];
        
        for(let i = 0 ; i < query.length ; i ++) {
            const idx = query[i]
            
            if(i%2 === 0) {
                arr.splice(idx+1, arr.length -(idx+1))
                // ** 시작 인덱스, 제거 갯수
            } else {
                 arr.splice(0, idx)
            }
        }
        
        answer = arr;
        
        return answer
    }

     

    3. n번째 원소부터

    function solution(num_list, n) {
        var answer = [];
        
        answer = num_list.slice(n-1, );
        
        return answer;
    }

     

    4. 순서 바꾸기

    function solution(num_list, n) {
        var answer = [];
        
        let res1 = num_list.slice(0, n);
        let res2 = num_list.slice(n, );
        answer = res2.concat(res1);
        
        return answer;
    }

     

     

    5. 왼쪽 오른쪽

    //  [”u”, “d”] ⇒ [] 
    // [”u”, “l”, “d”] ⇒ [”u”] 
    // [”u”, “r”, “d”] ⇒ [”d”]
    function solution(str_list) {
        var answer = [];
        
        let lIndex = str_list.indexOf("l");
        let rIndex = str_list.indexOf("r");
        
        if (str_list.includes("l")) {
            if (str_list.includes("r")) {
                if (lIndex < rIndex) {
                    answer = str_list.slice(0, lIndex);
                } else if (lIndex > rIndex) { 
                    answer = str_list.slice(rIndex+1, );
                }
            } else {
                answer = str_list.slice(0, lIndex);
            }
        } else {
            if (str_list.includes("r")) {
                    answer = str_list.slice(rIndex+1, );
            } else {
                answer = [];
            }
        }
        
         return answer;
        
    }

     

     

     

     

    728x90

    댓글