Day7 Coding Test

ming·2022년 12월 1일
0
post-thumbnail

1.특정 문자 제거하기

풀이

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

매개변수로 받은 my_string에서 replaceAll함수로 letter의 글자를 공백으로 변환시켜주었다.

2.각도기

풀이

function solution(angle) {
    if(0 < angle && angle < 90){
        return answer = 1;
    } else if(angle == 90){
        return answer = 2
    } else if(90 < angle && angle < 180){
        return answer = 3;
    } else if(angle == 180){
        return answer = 4;
    }
}

나는 조건문으로 해당하는값을 리턴 시켜주어서 풀이했지만 딱봐도 코드가 너무 지저분하다.

function solution(angle) {
    return [0, 90, 91, 180].filter(x => angle>=x).length;
}

다른 사람의 풀이를 참고하면 fliter함수로 조건에맞는 배열의 length를 구해서 return하는데 훨씬 가독성도 좋다.

3.양꼬치

function solution(n, k) {
   let num =  (12000 * n) + (2000 * k) ;
    if(n / 10 >= 1){
        return num - (2000 * (Math.floor(n / 10)));
    };
    return num;
}

풀이
처음 문제를보고 생각이 든건 결국 총합계에서 특정상황일때 총합에서 할인을 해주는것이라고 판단하였다.
먼저 매개변수에 맞는 가격으로 변수 num에 총금액을 할당 해주었고,
조건문으로 먹은 양꼬치 인분이 10이상일때 총금액에서 서비스 금액만큼 빼주어서 retrun 하였다.

4.짝수의 합

풀이

function solution(n) {
    let answer = 0;
     for(i=1; n >= i; i++){
         if(i % 2 == 0){
             answer += i;
         }
     }
    return answer;
}

위에는 내가 풀은 로직이다.
항상 짝수를 구할때 자주 쓰던게 특정값의 나머지를 2로 구했을때 0이나오면 짝수로 판단하여 체크했는데,
더 좋은 방법이 없을까 다른 사람 풀이를 찾아보았다.

function solution(n) {
    var half = Math.floor(n/2);
    return half*(half+1);
}

이 사람의 풀이를 보면,
n을 4라고 생각해보면 return 해주어야 하는값은 6이다.
먼저 half라는 변수레 Math.floor로 n/2로 2를 할당할거고,
half x (half+1)는 2 x 3 return 6 이 된다.

profile
프론트엔드 개발자 공부중

0개의 댓글