let arr = [128, 460, 603, 40, 521, 137, 123]
let result = max= sum =0
arr.forEach((arrEle)=>{
sum = String(arrEle).split('').map(ele=>parseInt(ele)).reduce((acc,cur)=>acc+cur)
if(sum >= max && arrEle>result ){
max = sum
result = arrEle
}
})
브루투포스 맨토
let arr = [
[3, 4, 1, 2],
[4, 3, 2, 1],
[3, 1, 4, 2],
]
let count = 0
let obj = { 1: [], 2: [], 3: [], 4: [] }
arr.forEach(arrEle => arrEle.forEach(ele => obj[ele].push(arrEle.indexOf(ele))))
let objToArr = []
for (let key in obj) objToArr.push(obj[key])
for (let i = 0; i < objToArr.length; i++) {
for (let j = 0; j < objToArr.length; j++) {
if (i === j) continue
let boo = true
for (let k = 0; k < objToArr[0].length; k++) {
if (objToArr[i][k] < objToArr[j][k]) {
boo = false
break
}
}
if (boo) count++
}
}
console.log(count)
수정
let arr = [
[3, 4, 1, 2],
[4, 3, 2, 1],
[3, 1, 4, 2],
]
let count = 0
let obj = { 1: [], 2: [], 3: [], 4: [] }
for (let i = 1; i <= 4; i++) {
arr.forEach(ele => {
obj[i].push(ele.slice(ele.indexOf(i) + 1))
})
for (let j = 1; j <= 4; j++) {
if (
obj[i].every(ele => {
return ele.includes(j)
})
)
count++
}
}
console.log(count)
문자열 + 숫자 sort
.sort(({ name: a = '0' } = {}, { name: b = '0' } = {}) => a.match(/\d+/)[0] - b.match(/\d+/)[0])
.sort(({ name: a = '가' } = {}, { name: b = '가' } = {}) =>
a.match(/[가-힣]/)[0] > b.match(/[가-힣]/)[0] ? 1 : a.match(/[가-힣]/)[0] < b.match(/[가-힣]/)[0] ? -1 : 0
)
투포인터 합치기
let arr1 = [1, 3, 5, 8, 10, 15, 18]
let arr2 = [4, 6, 7, 8, 13, 17, 19, 24]
let count = 0
let count2 = 0
let sumArr = arr1.concat(arr2).sort((a, b) => {
count++
return a - b
})
let pointer1 = 0
let pointer2 = 0
while (pointer2 < arr2.length) {
arr1[pointer1] <= arr2[pointer2] ? arr1.splice(pointer1 + 1, '', arr2[pointer2]) : arr1.splice(pointer1, '', arr2[pointer2])
pointer1 += 2
pointer2++
count2++
}
console.log(sumArr, count)
console.log(arr1, count2)
(15) [1, 3, 4, 5, 6, 7, 8, 8, 10, 13, 15, 17, 18, 19, 24] 35
(15) [1, 4, 3, 6, 5, 7, 8, 8, 10, 13, 15, 17, 18, 19, 24] 8
연속부분 1
let arr = [1, 2, 1, 3, 1, 1, 1, 2]
let p1 = 0
let p2 = 1
let result = 0
while (p1 < arr.length ) {
if (p2 > arr.length ) {
p1++
p2 = p1 + 1
continue
}
let tempArr = arr.slice(p1, p2)
let sum = tempArr.reduce((a, c) => a + c)
if (sum === 6) {
result++
p1++
p2 = p1 + 1
} else p2++
}
console.log(result)
연속부분 2
let arr = [1, 3, 1, 2, 3]
let p1 = 0
let p2 = 1
let result = 0
while (p1 < arr.length) {
if (p2 > arr.length) {
p1++
p2 = p1 + 1
continue
}
let tempArr = arr.slice(p1, p2)
let sum = tempArr.reduce((a, c) => a + c)
if (sum <= 5) {
result++
p2++
} else {
p1++
p2 = p1 + 1
}
}
최대 매출
let arr = [12, 15, 11, 20, 25, 10, 20, 19, 13, 15]
let p1 = 0
let p2 = 3
let max = 0
while (p2 < arr.length) {
let sum = arr.slice(p1, p2).reduce((a, c) => a + c)
if (sum > max) max = sum
p1++
p2++
}
console.log(max)