티스토리 뷰
반응형
문제
N개의 숫자가 입력되면 각 숫자의 자릿수를 더한 값이 가장 큰 수를 출력하시오.
자릿수를 더한 값이 같은 숫자가 있다면 더 큰 숫자를 출력합니다.
입력 예제
7
213, 221, 645, 128, 906, 344, 171
출력 예제
906
풀이
방법 1
function solution(n, nums) {
let answer, max = Number.MIN_SAFE_INTEGER;
for (let x of nums) {
let sum = 0, tmp = x;
// x의 각 자리수 더하기
while(tmp) { // tmp를 계속 나눠서 0이 되기 전까지
sum += (tmp % 10); // 10으로 나눴을 때 나머지는 1의 자리 수
tmp = Math.floor(tmp/10); // 10으로 나눈 몫은 1의 자리 제외한 수
}
// 각 자리수를 더한 값이 현재 최댓값보다 큰 경우
if (sum > max) {
max = sum;
answer = x;
} else if (sum === max) { // 각 자리수를 더한 값과 현재 최댓값이 같은 경우
if (x > answer) answer = x;
}
}
return answer;
}
방법 2
function solution(n, nums) {
let answer, max = Number.MIN_SAFE_INTEGER;
for (let x of nums) {
let sum = x.toString()
.split('')
.reduce((acc, cur) => acc + Number(cur), 0);
// 각 자리수를 더한 값이 현재 최댓값보다 큰 경우
if (sum > max) {
max = sum;
answer = x;
} else if (sum === max) { // 각 자리수를 더한 값과 현재 최댓값이 같은 경우
if (x > answer) answer = x;
}
}
return answer;
}
반응형
'Data Structure & Algorithm' 카테고리의 다른 글
[알고리즘-JS] 숫자 뒤집고 소수 찾기 (0) | 2022.05.03 |
---|---|
[알고리즘-JS] 투포인터 - 두 배열 합치기 (0) | 2022.05.03 |
[알고리즘-JS] 짧은 문자 거리 구하기 (0) | 2022.05.03 |
[알고리즘-JS] 중복 문자열 압축 (0) | 2022.05.03 |
[알고리즘-JS] 숫자만 추출하기 (0) | 2022.05.03 |