728x90
자릿수 더하기
코딩테스트 연습 - 자릿수 더하기
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출
programmers.co.kr
문제 설명
주어지는 숫자의 각 자릿수를 더하는 문제.
방법은 여러가지다, 주어지는 숫자를 to_string
으로 문자열화 하여 문자 1개씩 처리해도 되고, 숫자를 10으로 나누어 몫과 나머지를 이용하여 풀어도 된다.
문제 풀이
소스코드 : C++
문자열 변환
#include <iostream>
using namespace std;
int solution(int n){
int answer = 0;
string s = to_string(n);
for (int i = 0; i < s.length(); i++)
answer += s[i] - '0';
return answer;
}
재귀
#include <iostream>
using namespace std;
int solution(int n){
return n%10 + solution(n/10);
}
꼬리재귀
#include <iostream>
using namespace std;
int process(int sum, int n){
if(n==0) return sum;
return process(sum + n%10, n/10);
}
int solution(int n){
return process(0,n);
}
![]() 문자열 변환 |
![]() 재귀 |
![]() 꼬리 재귀 |
소스코드 : Python
def solution(n):
#return sum([int(i) for i in str(n)])
return sum(map(int,str(n)))
https://wonillism.tistory.com/17
[Algorithm - Theory]반복문과 재귀함수의 차이
알고리즘 문제를 풀면서 DFS, DP, Brute Force, Combination 등의 문제를 풀다 보면 간혹 의문이 생긴다. 나는 보통 위와 관련된 알고리즘 문제를 풀 때 재귀함수 를 이용한다. 문제에 따라 달라지긴 하겠�
wonillism.tistory.com
728x90
300x250