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

    SMALL

    1. 조건에 맞게 수열 변환하기

    function solution(arr) {
        var answer = 0;
        let res = 0;
        let arr1 = [];
        let arr2 = [];
        
        arr1 = arr;
        
        while (true) {
            // map 사용! arr1을 이용해서 arr2 만들기
            arr2 = arr1.map( i => {
                if (i%2==0 && i>=50) {
                    return i/2;
                } else if (i%2==1 && i<50) {
                    return i*2+1;
                } else {
                    return i;
                }
            })
            
            // **every로 arr1 요소와 arr2 요소 비교
            const compare = arr1.every( (a, i) => a == arr2[i]);
            if (compare) {
                break; // arr1과 arr2가 같으면 break;
            } 
            answer++;
            
            arr1 = arr2;
            // 현재 배열(arr2)을 이전 배열(arr1)에 저장
        } 
          
        return answer;
    }

    - every함수와 map함수를 사용해야한다는 힌트 get.

     

    2. 길이에 따른 연산

    function solution(num_list) {
        let answer = 0;
        let res1 = 0;
        let res2 = 1;
        let length = num_list.length;
        
        num_list.forEach( i => {
            if (length>=11) {
                res1 += i;
                answer = res1;
            } else { // (length <= 10)
                res2 *= i;
                answer = res2;
            }
        })
        
        
        return answer;
    }

     

    3. 원하는 문자열 찾기

    function solution(myString, pat) {
        var answer = 0;
        
        myString = myString.toLowerCase();
        pat = pat.toLowerCase();
        
        answer = (myString.includes(pat)) ? 1 : 0; 
        
        return answer;
    }

     

    4. 대문자로 바꾸기

    function solution(myString) {
        return myString.toUpperCase();
    }

     

    5. 소문자로 바꾸기

    function solution(myString) {
        return myString.toLowerCase();
    }

     

    6. 배열에서 문자열 대소문자 변환하기

    function solution(strArr) {
        var answer = [];
        
        for (let i=0; i<strArr.length; i++) {
            if (i%2==1) {
                strArr[i] = strArr[i].toUpperCase();
            } else {
                strArr[i] = strArr[i].toLowerCase();
            }
        }
        
        answer = strArr;
        
        return answer;
    }

    ** map 사용 코드

    function solution(strArr) {
        return strArr.map( (v, i) => i%2 == 0 ? v.toLowerCase() : v.toUpperCase());
        // v == strArr[i];
        // i == idx;
    }
    728x90

    댓글