[프로그래머스] 숨어있는 숫자의 덧셈(1)

가오리·2023년 2월 27일
0

coding-test

목록 보기
55/107
post-thumbnail

[프로그래머스] 숨어있는 숫자의 덧셈(1)

🔗 문제

문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.

  • 연속된 숫자도 각각 한 자리 숫자로 취급합니다.

⚠️ 제한사항

  • 1 ≤ my_string의 길이 ≤ 1,000
  • my_string은 소문자, 대문자 그리고 한자리 자연수로만 구성되어있습니다.

📲 입출력

my_stringresult
"aAb1B2cC34oOp"10
"1a2b3c4d123"16

입출력 예 #1

  • "aAb1B2cC34oOp"안의 한자리 자연수는 1, 2, 3, 4 입니다. 따라서 1 + 2 + 3 + 4 = 10 을 return합니다.

입출력 예 #2

  • "1a2b3c4d123Z"안의 한자리 자연수는 1, 2, 3, 4, 1, 2, 3 입니다. 따라서 1 + 2 + 3 + 4 + 1 + 2 + 3 = 16 을 return합니다.



💡풀이 방법

  • 입력받은 문자열을 한 자리씩 나누고 그 중에서 숫자만 담은 배열을 새로 만든다
  • 배열을 차례대로 돌면서 합을 구한다.
  • filter, reduce, isNaN을 사용해서 숫자인 것을 꺼내서 합을 구하는 방법도 있다.

💻 코드

function solution(my_string) {
    const stringList = my_string.split('').filter((index) => parseInt(index));
    let result = 0;
    stringList.forEach((index) => {
        result += parseInt(index); 
    })
    return result;
}
function solution(my_string) {
    return my_string.split("").filter((v)=> !isNaN(v)).reduce((a,b) => parseInt(a)+parseInt(b));
}
function solution(my_string) {
  return [...my_string].reduce(
    (acc, cur) => (Number(cur) ? +acc + +cur : acc),
    0
  );
}
profile
가오리의 코딩일기

0개의 댓글