📕 문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
⭐ 제한사항
1 ≤ my_string의 길이 ≤ 1,000
my_string은 소문자, 대문자 그리고 한자리 자연수로만 구성되어있습니다.
💻 입출력 예
my_string | result |
"aAb1B2cC34oOp" | 1 |
"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합니다.
💡 유의사항
연속된 숫자도 각각 한 자리 숫자로 취급합니다.
😊 나의 답변
function solution(my_string) {
const arr = my_string.replaceAll(/[A-z]/g, "").split("");
return arr.reduce((a, c) => a + Number(c), 0);
}
replaceAll
로 모든 문자를 제거하고, split()
으로 배열로 만들어준다.
배열을 reduce
로 순회하며 누적값을 출력하면 끝
📌 숫자를 제외한 문자만 정규식으로 /[^0-9]/g
도 사용할 수 있다. [^...] 은 부정!
function solution(my_string) {
return [...my_string].reduce((acc, cur) => Number(cur) ? Number(acc) + Number(cur) : acc, 0)
}
replace 없이 Number()
에 currentValue를 넣어 판별하는 풀이
문자열이 들어가면 NaN이 반환되기 때문이다.
728x90
반응형
'프로그래머스 > Lv. 0 코딩테스트 입문' 카테고리의 다른 글
[프로그래머스] Lv.0 모음 제거 / JS (0) | 2023.08.23 |
---|---|
[프로그래머스] Lv.0 문자열 정렬하기 (1) / JS (0) | 2023.08.22 |
[프로그래머스] Lv.0 컨트롤 제트 / JS (0) | 2023.08.22 |
[프로그래머스] Lv.0 최댓값 만들기 (2) / JS (0) | 2023.08.22 |
[프로그래머스] Lv.0 직사각형 넓이 구하기 / JS (0) | 2023.08.22 |