자리수의 합

지창언·2022년 8월 3일

codingTest

목록 보기
22/29

Index

1.문제
2.내 코드


문제

N개의 자연수가 입력되었을 때, 각 자연수의 자릿수 합을 구합니다.
이 때 자릿수 합이 가장 큰 것을 출력합니다.
(자릿수 합이 같을 경우, 원래 수가 큰 것을 출력합니다.)
예시)
입력
128 460 603 40 521 137 123
출력
137


내 코드

<script>
    function solution(n,arr){
        let maxNum = Number.MIN_SAFE_INTEGER;
        let tempNum = 0;
        arr.forEach(element => {
            let sumNum = 0;
            let temp = element;
            while(parseInt(temp/10) !==0){
                sumNum += temp%10;
                temp = parseInt(temp/10);
            }
            sumNum += temp%10;
            if(sumNum>maxNum){
                maxNum = sumNum;
                tempNum = element;
            }else if(sumNum === maxNum){
                tempNum = tempNum>element? tempNum:element;
            }
        });
        return tempNum;
    }
    let arr=[128, 460, 603, 40, 521, 137, 123];
    console.log(solution(7, arr));
</script>
  1. forEach문 통해 입력받은 배열 순회
  2. while문 통해 각 요소의 자릿수 합을 sumNum에 저장
  3. sumNum과 maxNum 비교하여 maxNum 갱신
  4. sumNum === maxNum 일 경우, 더 큰 수를 저장
profile
프론트엔드 개발자가 되고 싶은...

0개의 댓글