[프로그래머스 Level_1] - #4

문제 설명

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

제한사항

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

입출력 예

예전에는 자리수 구하는거를 되게 어렵게 리소스를 낭비하면서 구하는 경향이 있었다.
하지만 다른 이들이 while문과 몫, 나머지를 통해서 구하는 코드를 보고 응용하기 쉽다고 생각하여 해당 문제에 응용했다.

코드

import java.util.*;
public class Solution {
    public int solution(int n) {
        int answer = 0;     
        while(n > 0)
        {
            answer += n % 10;
            n = n / 10;    
        }        
        return answer;
    }
}

결과 또한 만족스럽게 나왔지만 다른 이들은 어떤 식으로 풀었는지 궁금하여 살펴 보았다.
그 중 확눈에 들어온 코드가 있었다.

import java.util.*;
public class Solution {
    public int solution(int n) {
        int answer = 0;
        int len = (int)Math.log10(n)+1;
        for(int i = 0; i < len; i++) {
            answer += n%10;
            n = n/10;   
        }
        return answer;
    }
}

위 코드는 고등 수학개념인 로그를 이용해서 문제를 해결했다.
수학 개념을 코드에 녹인다는게 쉽지 않지만, 응용할 수만 있다면 코드가 눈에 한번에 들어오는 거 같다.
필자의 코드랑 위 코드를 비교해보면서 수학의 중요성에 대해 다시 한번 깨닫게 됐다.

좋은 웹페이지 즐겨찾기