https://elecch.tistory.com/426
4-1 자리수의 합[브루트포스] ,reduce 0 : 타입 초기화
브루트포스(Brute Force)는 문제를 해결하는 방식 중 하나로, 모든 가능한 경우의 수를 일일이 확인하는 방법을 의미합니다. let sum = [...String(arr[i])].reduce((a,c) => a + Number(c),0); 이것부터 뜯어보자. redu
elecch.tistory.com
sort로 내가 애먹은 조건을 처음부터 고치고 시작한 과거의 나.(너무 잦은 for문의 남발과 복잡한 코드사용이 좀 아쉽긴 하지만 그래도 고작 30분만에 풀어냈다. 그래도 헛수고는 아닌게 for문 사용의 지양화라는 목표가 있으니까)
<작성 코드>
function solution(n, arr) {
let biggest = 0;
let answer = arr.map((x) => {
if (biggest === 0) {
biggest += x;
return biggest;
}
const isCorrect =
[...`${biggest}`].reduce((acc, sub) => {
sub = sub * 1;
return acc + sub;
}, 0) <
[...`${x}`].reduce((acc, sub) => {
sub = sub * 1;
return acc + sub;
}, 0)
? true
: false;
if (isCorrect) {
biggest = 0;
biggest += x;
console.log(biggest);
}
return biggest;
});
return answer;
}
let arr = [128, 460, 603, 40, 521, 137, 123];
console.log(solution(7, arr));
// let num = "";
// num += arr[0];
// let answer = [...num].reduce((acc, sub) => {
// sub = sub * 1;
// console.log(sub);
// return acc + sub;
// }, 0);
// console.log(answer);
내 코드의 문제점:
1. {} + return은 은 서로 상쇄 되서 화살표 기호 바로 옆에 return문 없이 return 값을 적어주면되는 것을 적용x
2. (currentSum === biggestSum && x > biggest)
윗 조건문. 만약에 같다면 더 합이 큰 값으로 바꿔줘야 하는데 이 조건없이 currentSum > biggestSum 라는 조건만 내가 코드로 구현하고자 함.
3. Number()라는 메소드를 까먹고 사용 못함.
<문제 답안>
function solution(n, arr) {
biggest = arr[0];
const sumLetter = (num) =>
[...`${num}`].reduce((acc, sub) => acc + Number(sub), 0);
arr.forEach((x) => {
let biggestSum = sumLetter(biggest);
let currentSum = sumLetter(x);
if (currentSum > biggestSum || (currentSum === biggestSum && x > biggest)) {
biggest = x;
}
});
return biggest;
}
let arr = [128, 460, 603, 40, 521, 137, 123];
console.log(solution(7, arr));
노력은 가상하나... 체력도 후달림을 감지중임.
'🗃️javascript > 코테 프레임 문제' 카테고리의 다른 글
멘토링(4-3)브루트 포스는 각 경우마다 조건을 바로 달아서 구하는것. (0) | 2024.06.17 |
---|---|
4-2 뒤집은 소수(x) [filter(Boolean): fasly 값제외, 남은 값만 새 배열로 생성] (0) | 2024.04.18 |
3-5 문자열 압축(△) (0) | 2024.04.16 |
3-4 가장 짧은 문자거리(x)[return문 작성 표시를 안해서 생긴 에러 고찰] (0) | 2024.04.16 |
3-3 숫자만 추출(x)[splice 활용: 원본의 변화는 임시 변수에 담아 재할당] (0) | 2024.04.16 |