자료구조 및 알고리즘/JavaScript Practice

JS Practice) 프로그래머스로 공부하기 6

Ryomi 2023. 3. 6. 09:36
728x90
반응형

 

1. 모음 제거

: 주어진 문자열 내 모음을 제거한 문자열 return

- 내가 짠 코드

function solution(my_string) {
    return Array.from(my_string).filter(t => !'aeiou'.includes(t)).join('');
}

- solution

function solution(my_string) {
    return my_string.replace(/[aeiou]/g, '');
}

 

 

2. 개미 군단

: 개미 군단이 사냥을 나간다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력, 일 개미는 1의 공격력을 지니고 있다. 사냥감의 체력이 주어질 때, 최소한의 병력의 수 return

- 내가 짠 코드

// 전
function solution(hp) {
    let answer = parseInt(hp/5)
    let rest = hp%5;
    if(rest === 0) {
        return answer
    } else if(rest%3 ===0) {
        return answer + parseInt(rest/3)
    } else {
        return answer + parseInt(rest/3) + rest%3
    }
}


// 후
function solution(hp) {
    let general = Math.trunc(hp / 5);
    let soldier = Math.trunc((hp % 5) / 3)
    let worker = (hp % 5) % 3
    
    return general + soldier + worker
}

 

 

3.  제곱수 판별하기

: 어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 한다. 정수 n이 주어질 때, n이 제곱수면 1, 아니면 2 return

- 내가 짠 코드

// 전
function solution(n) {
    var answer = 0;
    if((Math.floor(Math.sqrt(n)))**2 === n) {
        return 1
    } else {
        return 2;    
    }
    
}


// 후
function solution(n) {
    return Math.trunc(Math.sqrt(n))**2 === n ? 1 : 2
}

- solution

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

 

 

4. 암호 해독

: 암호 cipher와 정수 code가 매개변수로 주어질 때, code 배수의 글자모음만 진짜 암호. 해독된 암호 문자 반환.

- 내가 짠 코드

function solution(cipher, code) {
    let str="";
    let num = code - 1;
    
    for(let i=num; i<cipher.length; i+=code){
        str+=cipher[i]
    }
    return str
}

- solution

function solution(cipher, code) {
    return cipher.split('').filter((_, index) => (index + 1) % code === 0).join('');
}

 

 

5. 대문자와 소문자

: 문자열이 매개변수로 주어질 때, 대문자는 소문자로, 소문자는 대문자로 return

- 내가 짠 코드

// 전
function solution(str) {
    var answer = '';
    for(let i=0; i<str.length; i++){
        str[i] === str[i].toUpperCase() ? answer += str[i].toLowerCase() :  answer += str[i].toUpperCase() 
    }
    return answer;
}


// 후
function solution(str) {
    return str.split("")
        .map(el => el === el.toUpperCase() ? el.toLowerCase() : el.toUpperCase()).join("")
}

- solution

function solution(my_string) {
    return Array.from(my_string).map(t => {
        return t[t.charCodeAt() < 91 ? 'toLowerCase' : 'toUpperCase']()
    }).join('');
}

 

 

728x90
반응형