[알고리즘] 자리수의 합

Eunhye Kim·2023년 12월 5일
0

알고리즘

목록 보기
3/10

N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력하는 프로그램을 작성하세요. 자릿수의 합이 같은 경우 원래 숫자가 큰 숫자를 답으로 합니다. 만약 235와 1234가 동시에 답이 될 수 있다면 1234를 답으로 출력해야 합니다.

입력 설명

첫 줄에 자연수의 개수 N(3<=N<=100)이 주어지고, 그 다음 줄에 N개의 자연수가 주어진다. 각 자연수의 크기는 10,000,000를 넘지 않는다.

출력설명

자릿수의 합이 최대인 자연수를 출력한다.

입력예제

7
128 460 603 40 621 137 123

출력예제

137

풀이

const num = 7;
const arr = [137, 460, 603, 40, 521, 128, 123];

solution(num, arr);

function solution() {
  let max = Number.MIN_SAFE_INTEGER;
  let answer = 0;

  for (let i = 0; i < arr.length; i++) {
    let sum = 0;
    let tmp = arr[i];

    while (tmp) {
      let item = tmp % 10;
      tmp = parseInt(tmp / 10);

      sum += item;
    }

    if (max < sum) {
      max = sum;
      answer = arr[i];
    } else if (sum === max) {
      if (arr[i] > answer) {
        answer = arr[i];
      }
    }
  }
  return answer
}
profile
개발에 몰두하며 성장하는 도중에 얻은 인사이트에 희열을 느낍니다.

0개의 댓글