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

2024. 7. 10. 22:21·Algorithm/Javascript

https://school.programmers.co.kr/learn/courses/30/lessons/120851

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


[ 문제 ]

 

[ 내 풀이 ]

function solution(my_string) {

    // 문자열을 문자 배열로 분리합니다.
    let new_string = my_string.split('');
    
    // 합계를 저장할 변수를 초기화합니다.
    let sum = 0;
    
    // 배열의 각 문자를 반복합니다.
    for(let i=0; i<new_string.length; i++){
    
        // 문자가 숫자인지 확인합니다.
        if(!isNaN(new_string[i])){
       
            // 숫자라면, 숫자로 변환하여 합계에 추가합니다.
            sum += Number(new_string[i]);
        }
    }
    
    // 모든 숫자의 합계를 반환합니다.
    return sum;
}

 

[ 다른 풀이 ]

// 정규식을 활용한 풀이법

function solution(my_string) {

    // 문자열에서 숫자가 아닌 모든 문자를 제거합니다.
    const answer = my_string.replace(/[^0-9]/g, '')
    
        // 제거된 숫자들만 남은 문자열을 각 숫자 단위로 분리합니다.
        .split('')
        
        // 각 숫자를 Number 타입으로 변환하여 모두 더합니다.
        .reduce((acc, curr) => acc + Number(curr), 0);
        
    // 최종 결과를 반환합니다.
    return answer;
}
// 전개연산자와 reduce를 활용한 풀이법
// 아래코드는 코드에 대한 설명을 위해 기존코드를 분리하였습니다.

function solution(my_string) {

    // my_string을 스프레드 연산자를 사용하여 문자 배열로 변환하고,
    return [...my_string]
    
        // reduce 함수를 사용하여 각 문자를 순회하며 숫자만 합산합니다.
        .reduce((acc, cur) =>
        
            // 현재 문자가 숫자인 경우 숫자로 변환하여 합산합니다.
            // 문자가 숫자가 아닌 경우 현재 누적 값을 그대로 반환합니다.
            Number(cur) ? +acc + +cur : acc,
            
        0); // 초기 누적 값은 0입니다.
}

// 아래코드는 원본코드입니다.

function solution(my_string) {
    return [...my_string].reduce((acc,cur)=>Number(cur) ? +acc + +cur : acc, 0)
}
// for of를 활용한 풀이법

function solution(my_string) {

    // 숫자의 합을 저장할 변수 sum을 0으로 초기화합니다.
    let sum = 0;
    
    // 주어진 문자열 my_string의 각 문자를 순회합니다.
    for (const ch of my_string) {
    
        // 현재 문자가 숫자인지 확인합니다.
        if (!isNaN(ch)) {
        
            // 문자가 숫자인 경우, 숫자로 변환하여 sum에 더합니다.
            sum += +ch;
        }
    }
    
    // 최종 합계를 반환합니다.
    return sum;
}
반응형
저작자표시 비영리 변경금지 (새창열림)

'Algorithm > Javascript' 카테고리의 다른 글

[ 프로그래머스 ] 배열 원소의 길이 ( JS )  (0) 2024.07.14
[ 프로그래머스 ] 컨트롤 제트 ( JS )  (0) 2024.07.13
[ 프로그래머스 ] 합성수 찾기 ( JS )  (0) 2024.06.28
[ 프로그래머스 ] 주사위의 개수 ( JS )  (0) 2024.06.26
[ 프로그래머스 ] 배열 회전시키기 ( JS )  (0) 2024.06.24
'Algorithm/Javascript' 카테고리의 다른 글
  • [ 프로그래머스 ] 배열 원소의 길이 ( JS )
  • [ 프로그래머스 ] 컨트롤 제트 ( JS )
  • [ 프로그래머스 ] 합성수 찾기 ( JS )
  • [ 프로그래머스 ] 주사위의 개수 ( JS )
heee1
heee1
FE 개발자를 희망하는 임희원 입니다.
  • heee1
    heee1.blog
    heee1
  • 전체
    오늘
    어제
    • 분류 전체보기 (69)
      • Front-end (1)
        • Javascript (4)
        • Typescript (1)
        • React (0)
        • Next.js (1)
        • Tool (1)
        • Git (1)
        • Prettier (0)
        • Test-Framework (1)
        • Vercel (1)
      • 교육 (28)
        • 항해99 : 웹개발 종합반 18기 (14)
        • 프로젝트 캠프 : React 2기 (5)
        • 코드잇 스프린트 : 단기심화 5기 (9)
      • Algorithm (29)
        • Javascript (24)
        • Python (5)
      • 코드 보관함 (1)
        • 배치스크립트 ( .bat ) (1)
  • 블로그 메뉴

    • 홈
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    Baekjoon
    오블완
    항해99
    자바스크립트
    Python
    모킹
    코드잇
    speed insights
    tailwindcss
    next.js
    react-spring
    테스트 프레임워크
    JavaScript
    til
    스프린트
    티스토리챌린지
    백준
    css animation
    jest
    node.js
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
heee1
[ 프로그래머스 ] 숨어있는 숫자의 덧셈(1) ( JS )
상단으로

티스토리툴바