코딩하는 해달이

[level 1] 자릿수 더하기 본문

개인 공부/프로그래머스

[level 1] 자릿수 더하기

코딩하는 해달 2022. 7. 20. 02:03

문제 설명

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

제한사항

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

문제 이해

입력받은 수 n의 각 자릿수의 합을 구해야한다.

우선 두가지 방법이 생각났는데, 한가지 방법은 이전의 하샤드 수에서 사용한 자릿수 별로 나누어서 더하는방법이고, 다른 방법은 string으로 형변환을 시켜서 각 자리를 더하는 것인데, 하샤드 수에서 사용한 방법을 이용하려면 n의 범위인 1억부터 나누어야하기에 이번엔 string으로 형변환 시켜서 해보기로했다.

 

알고리즘

1. 정수 n을 입력받는다.

2. n을 문자열로 변환하여 num에 대입한다.

3. 문자열을 순회하며 answer에 더한다.

 

**주의**문자열을 인덱스로 접근하면 char형으로 취급하기때문에 ASCII코드표를 참고해서 더하자.

 

풀이 코드

#include <iostream>
#include <string>

using namespace std;
int solution(int n)
{
    string num = to_string(n);
    int answer = 0;

    for (int i = 0; i < num.length(); i++) {
        answer += num[i] - 48;
    }

    return answer;
}

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

 

프로그래머스

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

programmers.co.kr

 

반응형
Comments