본문 바로가기
코딩테스트/C언어

[Level1] 자릿수 더하기 답안 및 풀이

by SRin23 2021. 6. 9.

◇ 문제 설명

자연수 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 하면 됩니다.

 

◇ 초기 내용

※ [출처] 프로그래머스-코딩테스트 연습-문제명

※ 초기 내용을 참고하여 문제에 맞는 코드를 작성하세요.

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int n) {
    int answer = 0;
    return answer;
}

 


◇ 답안

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int n) {
    int answer = 0;
    while(n!=0){
        answer += (n%10);
        n/=10;
    }
    return answer;
}

 

◇ 답안 풀이

(※ 실행 흐름 순으로 해석됩니다.)

int solution(int n) {
    int answer = 0;

    //n이 0이 아닐때까지 반복
    while(n!=0){

        //answer에 n의 각 자릿수를 더함

        //어떤 값을 10으로 나눈 나머지는 그 값의 1의 자릿수를 반환하며, 

        //그 값을 10으로 나누면 한자리씩 감소된다.

        //ex) 123 -> 123%10 = 3(일의 자리)/ 123/10 = 12 ...반복
        answer += (n%10);
        n/=10;
    }
    return answer;
}

 

 

◇ 실행결과

자릿수 더하기 실행결과

 

◇ 출처

https://programmers.co.kr/learn/challenges

 

코딩테스트 연습

기초부터 차근차근, 직접 코드를 작성해 보세요.

programmers.co.kr

 

댓글