| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 국비지원교육
- MegabyteSchool
- 자바스크립트
- useRef
- GIT
- 입문
- 개발 공부
- react
- styled-components
- 모던 딥 다이브 자바스크립트
- 메가바이트스쿨
- 코딩테스트
- TypeScript
- next.js
- Github
- 리액트
- 프론트엔드
- 프로그래머스
- 내일배움카드
- useMemo
- 패스트캠퍼스
- 알고리즘
- 개발자취업부트캠프
- 비전공자
- 이벤트
- 자료구조
- CSS
- 모던 자바스크립트 딥 다이브
- 공식문서
- JavaScript
Archives
- Today
- Total
개발 기록 남기기✍️
[프로그래머스] 숨어있는 숫자의 덧셈 (1) 본문
🗒️ 문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
⚠️ 제한 사항
- 1 ≤ my_string의 길이 ≤ 1,000
- my_string은 소문자, 대문자 그리고 한자리 자연수로만 구성되어있습니다.
👀 입출력 예
| my_string | result |
| "aAb1B2cC34oOp" | 10 |
| "1a2b3c4d123" | 16 |
❇️ 나의 풀이
- 문자열을 전개한 뒤, map 함수를 통해 배열 전체를 돌면서 자연수를 찾았다.
- 문자열을 전개하면, 배열의 값도 모두 문자열 데이터이기 때문에, Number()로 숫자화를 시켜주고, 변환된 값이 NaN인지를 확인한다.
- NaN이라면 해당 값은 계산하지 않고, NaN이 아니라면 해당 값은 answer에 더해준다.
function solution(my_string) {
var answer = 0;
[...my_string].map(v=> Number.isInteger(Number(v)) ? answer += Number(v) : answer);
return answer;
}
✍️ 리뷰
✔️ 다른 사람들의 풀이를 보니 정규표현식을 사용해 문자열 속 문자열 데이터를 모두 빈 값으로 replaceAll 시켰다.
✔️ 그 다음 reduce 함수를 통해 남은 숫자값들을 모두 더해준 값을 반환했다.
✔️ 생각보다 정규표현식을 자주 사용하는 것 같은데, 다 외우지는 못하더라도 자주 사용하는 정규표현식을 찾아보고 정리해야겠다!
✔️ ("문자열").replace(/[^0-9]/g, '') : 모든 문자 데이터를 빈 값으로 반환
✔️ reduce((acc, curr) => acc + curr, 0) : acc는 콜백 함수, curr는 배열 값, 0은 초기값
💟 본받고 싶은 코드
function solution(my_string) {
const answer = my_string.replace(/[^0-9]/g, '')
.split('')
.reduce((acc, curr) => acc + Number(curr), 0);
return answer;
}'코딩 테스트 연습' 카테고리의 다른 글
| [프로그래머스] 피자 나눠 먹기 (2) (0) | 2022.12.26 |
|---|---|
| [프로그래머스] 인덱스 바꾸기 (0) | 2022.12.26 |
| [프로그래머스] 제곱수 판별하기 (0) | 2022.12.23 |
| [프로그래머스] 순서쌍의 개수 (0) | 2022.12.23 |
| [프로그래머스] 문자열안에 문자열 (0) | 2022.12.23 |