Programmers_JavaScript

[Programmers] 코딩테스트 JavaScript 정답률 89% 이상 모음 (1)

콩유니 2024. 1. 14. 23:21

Q. 아이스 아메리카노

function solution(money) {
    let americano = Math.floor(money/5500);
    let remain = money - (americano*5500);
    return [americano, remain];
}

 

 

 

Q. 문자열 뒤집기

function solution(my_string) {
    return [...my_string].reverse().join("");
}

 

 

Q. 배열 두 배 만들기

function solution(numbers) {
    return numbers.map((x) => x*2);
}

 

 

Q. 짝수 홀수 개수

function solution(num_list) {
    let odd = 0;
    let even = 0;
    num_list.forEach((x) => x % 2 == 0 ? even+=1 : odd+=1 );
    return [even, odd]
}

 

 

 

Q. 옷가게 할인 받기

function solution(price) {
    let result;
    switch(true) {
        case price >= 100000 && price < 300000:
            result = price - (price * 0.05);
            break;
        case price >= 300000 && price < 500000:
            result = price - (price * 0.1);
            break;
        case price >= 500000:
            result = price - (price * 0.2);
            break;
        default: result = price; 
            break;
    }
    return Math.trunc(result);
}

 

 

 

Q. 중앙값 구하기

function solution(array) {
   return array.sort((a,b) => b-a)[Math.trunc(array.length/2)];
}

 

 

 

Q. 짝수는 싫어요

function solution(n) {
    let odd = [];
    for(let i=0; i<=n; i++) {
        if(i % 2 == 1) {
            odd.push(i);
        }
    }
    return odd;
}

 

 

 

Q. 세균 증식

function solution(n, t) {
    for(let i=1; i<=t; i++) {
        n *= 2;
    }
    return n;
}

 

내가 한 건 아니지만 좋았던 풀이, 나는 수포자라서 이런게 어렵나보다... 공부 열심히 해야겠다.

function solution(n, t) {
  return n << t;
}

 

 

 

Q. 배열자르기

 

.slice(num1, num2) 

slice는 두번째 인자의 인덱스는 포함하지 않기 때문에 넣어주어야 한다.

function solution(numbers, num1, num2) {
    return numbers.slice(num1, num2+1);
}

 

 

 

Q. 점의 위치 구하기

function solution(dot) {
    let answer;
        if (dot[0] > 0 && dot[1] > 0){
            answer = 1;
        }
        else if (dot[0] < 0 && dot[1] > 0){ 
            answer = 2;
        }
        else if (dot[0] < 0 && dot[1] < 0){
            answer = 3;
        }
        else if (dot[0] > 0 && dot[1] < 0){
            answer = 4;
        }
    return answer;
}

 

 

Q. 중복된 숫자 개수

function solution(array, n) {
    return array.filter((x) => x == n).length;
}

 

 

 

Q. 삼각형의 완성조건

function solution(sides) {
    let _sides = [...sides].sort((a,b) => b-a);
    return _sides[0] < (_sides[1] + _sides[2]) ? 1 : 2;
}

 

 

 

Q. 최댓값 만들기 (1)

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

 

 

 

 

Q. 특정 문자 제거하기

function solution(my_string, letter) {
    return [...my_string].filter((x) => x != letter).join("");
}

 

 

 

 

Q. 제곱수 판별하기

function solution(n) {
    return Number.isInteger(Math.sqrt(n)) ? 1 : 2;
}

 

 

Q. 배열의 유사도

function solution(s1, s2) {
    let answer = 0;
    for(let i=0; i<s1.length; i++) {
        for(let j=0; j<s2.length; j++) {
            if(s1[i] == s2[j]) {
                answer++;
            }
        }
    }
    return answer;
}

 

 

 

Q. 순서쌍의 개수

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

 

 

 

Q. 모음 제거

function solution(my_string) {
    let vowels = ["a", "e", "i", "o", "u"];
    return [...my_string].filter((x) => !(vowels.includes(x))).join("");
}

 

 

 

 

Q. 자릿수 더하기

function solution(n) {
    return [...n.toString()].reduce((acc, cur) => Number(acc) + Number(cur), 0);
}

 

 

 

Q. 숨어있는 숫자의 덧셈 (1)

function solution(my_string) {
    return [...my_string]
        .filter((x) => !isNaN(x))
        .reduce((acc, cur) => Number(acc) + Number(cur));
}

 

 

 

Q. n의 배수 고르기

function solution(n, numlist) {
    return numlist.filter((x) => x % n == 0);
}

 

 

 

Q. 대문자와 소문자

function solution(my_string) {
    let _my_string = [...my_string].map((x) => x.toUpperCase());
    let answer = [...my_string].map((x, i) => {
       return x != x.toUpperCase() ? x.toUpperCase() : x.toLowerCase();
    }).join("");
    return answer;
}

 

 

 

Q. 개미 군단

function solution(hp) {
    let jang = Math.floor(hp/5);
    let byung = Math.floor((hp-jang*5)/3);
    let il = Math.floor((hp-(jang*5)-(byung*3)));
    return jang + byung + il;
}

 

 

 

Q. 가위 바위 보

function solution(rsp) {
    return [...rsp].map((x) => {
        if(x == "2") {return "0"}
        else if(x == "5") {return "2"}
        else if(x == "0") {return "5"}
    }).join("");
}

 

 

 

Q. 암호 해독

function solution(cipher, code) {
    return [...cipher].filter((x, i) => (i+1) % code === 0).join("");
}

 

 

 

 

Q. 최댓값 만들기 (2)

function solution(numbers) {
    const _numbers = [...numbers].sort((a,b) => b-a);
    const multiple1 = _numbers[0] * _numbers[1];
    const multiple2 = _numbers[numbers.length-1] * _numbers[numbers.length-2];
    return multiple1 > multiple2 ? multiple1 : multiple2;
}