cdtst03

skoh·2023년 2월 13일
0

1. 배열 자르기

계속 붙잡고 있다가 갑자기 딱 생각난..

//내꺼
function solution(numbers, num1, num2) {
    var answer = [...numbers].slice(num1,num2+1)
    return answer;
}

아래처럼 하고싶었는데 조건을 저렇게 주는건지를 몰라서.. 큭큭

//01
function solution(numbers, num1, num2) {
    return numbers.filter((n, i) => num1 <= i && i <= num2);
}

그리고 그냥 for문 쓰고싶을때는 아래처럼 하면 되는거였다!

//02
function solution(numbers, num1, num2) {
    var result = [];
    for(var i=num1; i <= num2; i++){
        result.push(numbers[i]);
    }

    return result;
}

2. 옷가게 할인 받기

//내꺼
function solution(price) {
    var answer = 0;
    if(price >= 100000 && price < 300000) {
        answer = price*0.95;
    } else if(price >= 300000 && price < 500000) {
        answer = price*0.9;
    } else if(price >= 500000) {
        answer = price*0.8;
    } else {
        answer = price;
    }
    return Math.trunc(answer);
}

더 이쁘게 푸는 방법이 도저히 생각이 안나서 ㅎ

//01
const discounts = [
    [500000, 20],
    [300000, 10],
    [100000,  5],
]

const solution = (price) => {
    for (const discount of discounts)
        if (price >= discount[0])
            return Math.floor(price - price * discount[1] / 100)
    return price
}

다른 사람이 작성한 위 코드를 한 번 보고..
다시 풀어봤다.
난 계속 안돼서 좀 오래걸렸다.
배열의 순서가 문제였다. ㅋㅋ 그래도 풀어서 다행 휴~

//내꺼
function solution(price) {
    
    const array_dc = [
        [500000, 0.2],
        [300000, 0.1],
        [100000, 0.05]
    ]
    
    for(const el of array_dc){
        if(price >= el[0]){
            return Math.trunc(price*(1-el[1]) )
        }   
    }
    return price;
}

3. 특정 문자 제거하기

계속 봐왔던 코드들이 참고가 되어버려서 아래처럼 풀었다.

//내꺼
function solution(my_string, letter) {
    var answer = '';
    answer = [...my_string].filter(el=>el!=letter).join('')
    return answer;
}

일단 다른 사람들이 푼 코드가 꽤 재밌었다.
split을 ''이거로만 써봐서 그 안에 변수를 넣어서 써볼 생각은 못했다.

//01
function solution(my_string, letter) {
    const answer = my_string.split(letter).join('')
    return answer;
}

그리고.. 이 코드에서는 순간 충격받음
왜냐면 내가 맨날 쓰던 코드였는데 ㅋㅋㅋ 키업이벤트랑만 연결해서 써봐서 응용자체가 안됐다;;; 휴

//02
function solution(my_string, letter) {
    return my_string.replaceAll(letter, "");
}

4. 최댓값 만들기

이건.. 처음부분에 계속 나오던 패턴이라 금방 했다

//내꺼
function solution(numbers) {
    let answer = 0;
    numbers.sort((a,b) => b-a)
    answer = numbers[0]*numbers[1]
    return answer;
}

5. 짝수는 싫어요

오 할줄알아! 하면서 후다닥 풀고나니..

//내꺼
function solution(n) {
    var answer = [];
    for(let i=0; i<=n; i++){
        if(i%2!==0)
            answer.push(i)
    }
    return answer;
}

뭔가 구리다.

다른 사람들꺼 보니..

//01
function solution(n) {
    var answer = [];

    for (let i = 1; i<=n; i+=2) answer.push(i)

    return answer;
}

깔끔하다.
그래 굳이 모든 숫자를 돌릴 필욘 없잖아..

0개의 댓글