[프로그래머스] 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