자릿수의 합

bkboy·2022년 5월 17일
0

문제

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

제한사항

입출력 예

풀이

function solution(n, arr) {
  let sums = [];
  for (let x of arr) {
    let sum = x
      .toString()
      .split('')
      .reduce((a, c) => a + Number(c), 0);
    sums.push(sum);
  }
  let max = Math.max(...sums); //11
  let maxs = [];
  sums.forEach((e, i) => {
    if (e === max) {
      maxs.push(arr[i]);
    }
  });
  let answer = Math.max(...maxs);
  return answer;
}

let arr = [128, 460, 603, 40, 521, 137, 123];
console.log(solution(7, arr));
  • 숫자 자리수 합치는 테크닉 기억하자.
  • maxs 배열은 겹치는게 있을 수 있어서 만든 배열이다.
  • 합계가 max인 원소들의 원본을 maxs배열에 넣고 그중에 최대값을 출력한다.
profile
음악하는 개발자

0개의 댓글