카테고리 없음

aa

fullfish 2023. 1. 25. 13:55
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)