인트로
알고리즘 코드는 C 또는 C++ 기반으로 작성되었습니다.
자릿수의 합 구하기
알고리즘 기초에서 참 많이 보는 문제 유형같다.
예를 들어 123을 321로 바꾸기, 각 자릿수의 합을 구하기, 가장 많이 사용된 숫자 구하기 등 기본 원리만 알고가면 쉽다.
자릿수의 합
문제
N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력 하는 프로그램을 작성하세요.
각 자연수의 자릿수의 합을 구하는 함수를 int digit_sum(int x)를 꼭 작성해서 프로그래밍 하세요.
※입력설명
N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력 하는 프로그램을 작성하세요.
※출력설명
자릿수의 합이 최대인 자연수를 출력한다. 자리수의 합이 최대인 자연수가 여러개인 경우 그 중 값이 가장 큰 값을 출력합니다.
입력
5
125 15232 79 1325 97
출력
97
123을 321로 바꾸기, 각 자릿수의 합을 구하기, 가장 많이 사용된 숫자 구하기 등 해결 방식은 동일하다.
가장 기본적인 해결법으로 123에서 3을 추출하고 12에서 2를 추출하고 1에서 1을 추출하는 방식이다.
각 자릿수의 합을 구하는 방법도 동일하다.
#include <iostream>
using namespace std;
int digit_sum(int num)
{
int res = 0;
while (num > 0)
{
res += num % 10;
num = num / 10;
}
return res;
}
int main()
{
int count, num, sum, maxSum = 0, res;
cin >> count;
for (int i = 0; i < count; i++)
{
cin >> num;
sum = digit_sum(num);
if (sum > maxSum)
{
maxSum = sum;
res = num;
}
else if (sum == maxSum)
{
res = num > res ? num : res;
}
}
cout << res;
}
'Algorithm > it 취업을 위한 알고리즘 문제 풀이' 카테고리의 다른 글
[Algorithm] 18. 층간소음 (0) | 2021.07.29 |
---|---|
[Algorithm] 16. Anagram(아나그램 : 구글 인터뷰 문제) (0) | 2021.07.28 |
[Algorithm] 9. 모두의 약수 (0) | 2021.07.23 |
[Algorithm] 11. 숫자의 총 개수(small, large) (0) | 2021.07.22 |
[Algorithm] 2. 자연수의 합 & 3. 진약수의 합 (0) | 2021.07.20 |