cdtst05

skoh·2023년 2월 14일
0

1. 자릿수 더하기

쉽게 생각했는데 잘 안돼서 그냥 for문~

//내꺼 
function solution(n) {
    var answer = 0;
    n = String(n).split('')
    for(let i=0; i<n.length; i++) { 
        answer += parseInt(n[i])
    }

    return answer;
}

하지만 그냥 reduce를 이용하면 됐었다..

//01
function solution(n) {
  return n
    .toString()
    .split("")
    .reduce((acc, cur) => acc + Number(cur), 0);
}

2. 문자열 안에 문자열

//내꺼
function solution(str1, str2) {
    var answer = 0;
    answer = str1.includes(str2) ? 1 : 2
    return answer;
}
//01
function solution(str1, str2) {
    return str1.split(str2).length > 1 ? 1 : 2
}
//02
function solution(str1, str2) {
    return str1.indexOf(str2) === -1 ? 2 : 1;
}
//03
function solution(str1, str2) {
    return str1.search(str2) !== -1 ? 1 : 2
}
//04
function solution(str1, str2) {
    var answer = 0;
    return str1.match(str2) ? 1 : 2;
}

3. 숨어있는 숫자의 덧셈

//내꺼
function solution(my_string) {
    var answer = 0;
    answer = [...my_string].filter(el=>Number(el)).reduce((acc, cur) => acc += Number(cur), 0)
    return answer;
}

음 아는 걸 총동원해봤는데 만족!
다만 reduce만 사용해서 그 안에서 넘버를 걸러내서 하는게 더 깔끔한 듯 (아래처럼)

//01
function solution(my_string) {
    return [...my_string].reduce((acc,cur)=>Number(cur) ? +acc + +cur : acc, 0)
}

4. 제곱수 판별하기

//내꺼
function solution(n) {
    var answer = 0;
    answer = Math.sqrt(n)%1 == 0 ? 1 : 2
    return answer;
}

제곱근 구하는 방법을 까먹어서.. Math.sqrt까지는 검색해서했다ㅋ
%2 == 0 ? 1 : 2 로 했다가.. 제출통과가 안돼서
%1 == 0 ? 1 : 2 로 바꿨더니 됐다.. 뒤에 소수점을 판별해야해서 그런가보다.
소수점 판별하는 method 없나 하다가 다른사람 답에서 isInteger 발견..
아래가 내가 원하던 코드인 듯 하다.

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

5. 모음 제거

아니 뭐지 정규표현식 해도 해도 안되길래
완전 지저분하게 풀었는데 ㅠㅠ 어디서 잘못됐었던거지

//내꺼
function solution(my_string) { 
    let answer = '';
    let m = ['a','e','i','o','u'];


    answer = [...my_string].filter(el=>!el.includes('i') && !el.includes('e') && !el.includes('a') && !el.includes('o') && !el.includes('u')).join('')

    return answer;
}

아래처럼 했었는데 계속 안돼서 못했는디 ㅜㅜ 뭔가 하나를 잘못썼나 ㅜㅜ

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

0개의 댓글