Koras02
Koras02코딩웹
Koras02
전체 방문자
오늘
어제
  • 분류 전체보기 (299)
    • 백엔드 (59)
      • nestjs (2)
      • Ruby (3)
      • PostgresQL (11)
      • MySQL (5)
      • Haskell (7)
      • Koa (3)
      • Java (3)
      • Python (5)
      • Rust (5)
      • MongoDB (2)
      • PHP (3)
      • Spring Boot (1)
      • redis (5)
      • deno (2)
    • 웹서버 (3)
      • nginx (1)
      • Apache (2)
      • Google Web Server (0)
    • 모바일개발 (5)
      • Figma (0)
      • React Native (2)
      • swift (0)
      • Flutter (3)
      • Kotlin (0)
    • 프론트 엔드 (158)
      • HTML (34)
      • CSS (7)
      • Javascript (35)
      • Angular (0)
      • Typescript (2)
      • React (58)
      • Vue (2)
      • GIT (6)
      • GraphQL (1)
      • Doker (4)
      • Go (8)
      • svelte (1)
      • gatsby (0)
    • etc. (47)
      • Notion (0)
      • TIL (24)
      • Algorithm (17)
      • Algorithm 개념 정리 (2)
      • Wiki (3)
      • Official document (1)
    • 웹개념 (12)
    • 변수정리 (1)
    • VSCode (2)
    • 포트폴리오 분석 (2)
      • React (2)
    • os (5)
      • 윈도우 (4)
      • Mac (0)
      • 가상머신 (0)
      • linux (1)
    • 응용프로그램언어 (2)
      • C (2)
      • C++ (0)
      • C# (0)
    • 블로그 운영관련 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
글쓰기

공지사항

  • [공지사항] 개발 이슈나 공식문서 업데이트 업로드 예정입니⋯

인기 글

태그

  • go
  • Haskell
  • Flutter
  • React
  • mysql
  • Til
  • 데이터 타입
  • 프로그래머스
  • koa
  • 하스켈
  • Rust
  • redis
  • javascript
  • 문자열
  • CSS
  • Java
  • html
  • html5
  • 알고리즘
  • PostgreSQL

티스토리

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.
Koras02

Koras02코딩웹

[프로그래머스] 자릿수 더하기
etc./Algorithm

[프로그래머스] 자릿수 더하기

2022. 1. 20. 15:29
728x90

문제

자연수 N이 주어지면, N의 각 자릿수의 합을 구해 return 하는 solution 함수를 만들어 주세요.

예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

 

제한 사항

  • N의 범위: 100,000,000 이하의 자연수

입출력 예

N answer
123 6
987 24

입출력 예 설명

 

입출력 예 #1

문제는 예시와 같습니다.

 

입출력 예 #2

9 + 8 + 7 = 24 이므로 24를 return하면 됩니다.

 

1.문제 이해하기

입력으로 들어올 숫자의 각 자리 수를 합한 값을 변환해주면 된다.

n의 값이 123 이면 1 + 2 + 3 = 6을 retun 하면 된다.

 

2.해결 방법

입력으로 들어온 숫자를 문자로 변환해 다음 배열로 만들어 reduce를 이용해 각 자리 숫자를 더한다.

더할 떄에도 마찬가지로 문자를 숫자로 변환해서 더해준다.

 

const solution = (n) => 
n
   // 객체가 가진 정보를 문자열로 만들어 return 
  .toString()
    // 가져온 문자들을 splic을 향해 쪼개준다.
  .split("")
// retuce를 이용해 각 자리 숫자를 더해준뒤 더할 떄도 마찬가지로 문자를 숫자로 변환해 더한다.
  .reduce((acc,cur) => acc + Number(cur), 0);

 

멘토님 풀이법

function solution(n)
{
//     var answer = 0;

//     // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
//     console.log('Hello Javascript')

//     return answer;
    
    let answer = 0; // answer의 초기값 0
    // number 타입은 index 개념이 없어 각각 요소를 가져올 수 없다.
    
    // number 타입의 데이터를 문자열로 바꾸고 반복문을 사용해 요소로 가져와 숫자타입으로 
    // 바꿔주면 총 숫자를 가져올 수 있다.
    
    console.log(typeof n)
    n = String(n)
    
    // n의 값의 0번째 index와 1번째 index값을 가져옴
    // console.log(n[0])
    
    // 값이 하나씩 증가하면서 각각의 index 값을 가져옴
    for(let i = 0; i <  n.length; i++) {
        // console.log(n[i])
        
        // 현재 string으로 가지고 있다.
        // console.log(typeof n[i])
        
        // Number 타입으로 변환해 answer에 더해주면 숫자의 연산 처럼 값이 더해진 값이 return
        answer += Number(n[i]) // answer라는 데이터의 n의 i값을 더해주면 됨 
    
    }
    return answer;
}
function solution(n)
{       
    // reduce를 사용한 문법 
      // 문자열로 먼자 반환
    // reduce index 2개
     const answer = String(n).split("").reduce(( cu, el ) => {
     // 문자열 형태라 cu 와 el이 벌려저 나옴
         console.log(typeof cu, typeof el)
         // cu와 el을 Number 타입으로 받아와야함
         return Number(cu) +  Number(el);
     })
     
     // 문자열로 먼자 반환
     // console.log(answer)
     return answer
}
function solution(n)
{       
    // reduce를 사용한 문법 
      // 문자열로 먼자 반환
    // reduce index 2개
     const answer = String(n).split("").reduce(( cu, el ) => {
     // 문자열 형태라 cu 와 el이 벌려저 나옴
         console.log(typeof cu, typeof el)
         // cu와 el을 Number 타입으로 받아와야함
         // Number 타입으로 주면 굳이 감쌀 필요 X
         return cu +  el;
         
         // 0을 받아옴 초기값을 받아 오는데, 0은 숫자타입 부터 받아오니 
         // 맨처음부터 숫자 Number타일을 가지고 있다.
     },0)
     
     // 문자열로 먼자 반환
     // console.log(answer)
     return answer
}

'etc. > Algorithm' 카테고리의 다른 글

[프로그래머스] x만큼 간격이 있는 n개의 숫자  (0) 2022.01.20
[프로그래머스] 약수의 합  (0) 2022.01.19
[프로그래머스 코딩테스트] 서울에서 김서방 찾기  (0) 2022.01.19
    'etc./Algorithm' 카테고리의 다른 글
    • [프로그래머스] 문자열 내림차순으로 정렬하기
    • [프로그래머스] x만큼 간격이 있는 n개의 숫자
    • [프로그래머스] 약수의 합
    • [프로그래머스 코딩테스트] 서울에서 김서방 찾기
    Koras02
    Koras02
    현재 사용중인 언어 - next-js,react,vue, typescript

    티스토리툴바