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

SMALL

1. 배열의 원소 삭제하기

function solution(arr, delete_list) {
    var answer = [];
    
    // ** arr와 delete_list의 중복 값(교집합) 찾기
    const overlap = arr.filter( i => delete_list.includes(i));
    
    // arr와 overlap의 중복 값을 제외한 배열 생성 
    answer = arr.filter ( i => !(overlap.includes(i)));
    
    return answer;
}

 

2. 부분 문자열인지 확인하기

function solution(my_string, target) {
    var answer = 0;
    let substr = [];
    
    // 부분 문자열 배열 생성
    for (let i=0; i<my_string.length; i++) {
        for (let j=i; j<my_string.length; j++) {
            substr.push(my_string.slice(i, j+1));
        }
    }
    
    // 부분 문자열인지 여부 판단하기
    if (substr.includes(target)) answer = 1;
    
    return answer;
}

 

3. 부분 문자열

function solution(str1, str2) {
    var answer = 0;
    
    if(str2.includes(str1)) answer = 1;
    
    return answer;
}

 

4. 꼬리 문자열

function solution(str_list, ex) {
    var answer = '';

    answer = str_list.filter ( i => !(i.includes(ex))).join('');
    
    return answer;
}

 

5. 정수 찾기

function solution(num_list, n) {
    var answer = 0;
    
    if (num_list.includes(n)) answer = 1;
    
    return answer;
}

 

6. 주사위 게임 1

function solution(a, b) {
    var answer = 0;
    
    if (a%2==1) { // 홀수
        if (b%2==1) {
            answer = a*a + b*b;
        } else {
            answer = 2*(a+b)
        }
    } else { // 짝수
        if (b%2==1) {
            answer = 2*(a+b)
        } else {
            answer = Math.sqrt(Math.pow(a-b, 2));
            // |a-b| ==> (a-b}^2의 제곱근으로 구함
            // ** Math.abs > 절댓값 구하기
        }
    }
    
    return answer;
}

 

7. 날짜 비교하기

function solution(date1, date2) {
    var answer = 0;
    
    // 날짜 비교 시, Date 함수 사용
    const newDate1 = new Date(date1);
    const newDate2 = new Date(date2);
    
    if (newDate1 < newDate2) answer = 1;
    
    return answer;
}
728x90