자료구조 및 알고리즘/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
반응형