[프로그래머스 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; } }
위 코드는 고등 수학개념인 로그를 이용해서 문제를 해결했다.
수학 개념을 코드에 녹인다는게 쉽지 않지만, 응용할 수만 있다면 코드가 눈에 한번에 들어오는 거 같다.
필자의 코드랑 위 코드를 비교해보면서 수학의 중요성에 대해 다시 한번 깨닫게 됐다.
Author And Source
이 문제에 관하여([프로그래머스 Level_1] - #4), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@bumseo/프로그래머스-Level1-4저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)