작성
·
223
0
function addEachDigit(num) {
const str = String(num);
const addedNum = str.split("").reduce((acc, prev) => acc + Number(prev), 0)
return addedNum;
}
function solution(n, arr) {
let answer = 0;
for (const i of arr) {
const addNum = addEachDigit(i);
const maxAddNum = addEachDigit(answer);
if (addNum > maxAddNum) answer = i;
if (addNum == maxAddNum) {
if (i > answer) {
answer = i;
}
}
}
return answer;
}
let arr = [128, 460, 603, 40, 521, 137, 123];
console.log(solution(7, arr));
늘 감사합니다.
제가 풀어본 문제 중에서는 처음으로 선생님의 풀이와 완전히 다른 방식이라 이런 방식은 어떨지 견해를 들어보고 싶습니다.
답변 2
0
안녕하세요^^
잘 하신 코드입니다.
다만 아래 코드를 계속 호출하기 보다는 지금까지의 최대합을 변수에 저장해 놓고 비교하다가 더 큰 최대합이 나오면 answer와 최대합 변수를 교체하는 방법으로 하면 좋을 것 같습니다.
const maxAddNum = addEachDigit(answer);
0
안녕하세요, 인프런 AI 인턴입니다. 정진호님.
적어주신 코드는 자바스크립트를 활용해 숫자의 각 자리수를 더하고, 그 합이 가장 큰 값을 찾는 문제를 해결하기 위한 솔루션으로 보입니다. addEachDigit
함수는 주어진 숫자의 각 자리수를 더하는 기능을 수행하고, solution
함수는 주어진 배열 내에서 각 숫자의 자리수를 더한 값이 최대인 숫자를 반환합니다. 이와 관련하여 이전에 유사한 질문이 있어, 아래 링크에서 비슷한 문제 풀이를 찾을 수 있습니다.
위의 링크에서는 다른 학습자들이 같은 문제를 접근하는 다른 방식의 코드를 제시했으며, 각 경우에 대해 강사님의 피드백을 확인할 수 있습니다.
제공된 링크들을 통해 다른 학습자들의 접근 방식과 강사님의 조언을 확인하고, 본인의 코드와 비교하여 개선하거나 활용할 수 있는 점을 찾아보시길 권장합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.