알고리즘은 계속 풀고 있었지만,, 계속 포스팅을 깜빡하고 안올리고 있었던,,,
오늘은 알고리즘 테스트를 대비하여 문제를 풀어보았다.
문자열 안에 숨어 있는 숫자들만 골라서 총 합을 구하는문제
function solution(my_string) {
const temp = my_string.split("")
return temp.reduce((pre,cur)=>{
if(Number(cur))return pre+Number(cur)
else return pre+0
},0)
}
const my_string = "aAb1B2cC34oOp"
console.log(solution(my_string))
문자열을 split("")매서드를 통해서 배열로 만든 후, reduce()매서드를 이용해서 배열을 쭉 돌면서 만약 Number(배열요소)를 했을때, NaN이면 0을 더하고 NaN이 아니면 해당 값을 숫자로 변환해서 더한 후 누적값을 리턴.
JavaScript에서 false인 것들
- undefined, null
- NaN
- 0 (숫자 리터럴) , -0
- “” (빈 문자열)
- false
0이 false로 간주되어도 어짜피 0은 더해주나 빼주나 기존값에 변화를 주지 않음으로 상관이 없다고 판단하였다.
문자열 안에 모음(영어 모음은 "a","e","i","o","u")을 제거한 문자열을 리턴하는 문제
function solution(my_string) {
var answer = my_string;
const vowels=["a","e","i","o","u"]
for(let i = 0;i<vowels.length;i++){
const temp = answer.split(vowels[i])
answer=temp.join("")
}
return answer;
}
const my_string = "hello"
console.log(solution(my_string))
answer에 변수로 들어온 my_string을 할당한 후,
영어 모음이 모은 배열 "vowels"를 선언하고, 해당 배열을 돌면서 모음으로 split한후 다시 join을 해주면 해당 문자를 제외한 문자열이 생기고 이를 다시 answer에 할당.
최종 만들어진 answer을 리턴.