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;
}