◎ 문제
○ 출처
https://programmers.co.kr/learn/courses/30/lessons/12931
○ 문제 설명
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. |
○ 제한사항
|
○ 입출력 예
○ 입출력 예 설명
입출력 예 #1 입출력 예 #2 |
○ 작성 예시 코드
using System;
public class Solution {
public int solution(int n) {
int answer = 0;
return answer;
}
}
◎ 나의 문제 풀이
using System;
public class Solution
{
public int solution(int n)
{
int answer = 0;
// n에 log10을 취한값을 버림하여 n의 자릿수를 알아냄
double length = Math.Truncate(Math.Log10(n));
// length만큼 10을 제곱하여 각 자릿수를 나눌 숫자를 만든다(ex:3자리수면 100)
int divide = (int)Math.Pow(10, length);
// 최대자리수부터 시작하여 0이될때까지 반복
for(int i = divide; i > 0; i /= 10)
{
// n에서 i로 나누어 몫을 구함 (자릿수)
answer += (n / i);
// 자릿수를 구하고 나머지를 다시 대입하여 다음 자릿수로 넘어감
n %= i;
}
return answer;
}
}
◎ 다른 문제 풀이
public int solution(int n) {
int answer = 0;
while(n>0){
answer+=n%10;
n=n/10;
}
return answer;
}
- Math관련 함수를 쓰지않는다면 여러 방법이 있겠지만 반대로 아랫자리에서 부터 자릿수를 계산하는 방법도 있다.
'프로그래밍 문제 풀이 > C#' 카테고리의 다른 글
[프로그래밍 문제 풀이] 프로그래머스 - 문자열을 정수로 바꾸기(C#) (0) | 2020.07.14 |
---|---|
[프로그래밍 문제 풀이] 프로그래머스 - 나누어 떨어지는 숫자 배열(C#) (0) | 2020.07.14 |
[프로그래밍 문제 풀이] 프로그래머스 - 서울에서 김서방 찾기(C#) (0) | 2020.07.12 |
[프로그래밍 문제 풀이] 프로그래머스 - 소수찾기(C#) (0) | 2020.07.08 |
[프로그래밍 문제 풀이] 프로그래머스 - 문자열 다루기 기본(C#) (0) | 2020.07.07 |