Skip to content

[이진탐색] 예산 #95

@ericagong

Description

@ericagong

⭐ 성찰

  1. 성찰내용
  2. 성찰내용
  3. 성찰내용

❓ 문제 상황

예산

👨‍💻 문제 해결: 풀이 방식

✅ 1차 풀이: 키워드

  1. 풀이흐름
  2. 풀이 흐름
  3. 풀이흐름
const fs = require('fs')
const inputs = fs.readFileSync('/dev/stdin').toString().split('\n')

const N = Number(inputs.shift())
const budgets = inputs.shift().split(' ').map(Number)
const M = Number(inputs.shift())

const maxB = Math.max(...budgets)
const requiredB = budgets.reduce((acc, curr) => acc + curr, 0)

if(requiredB <= M) {
  console.log(maxB)
}
else {
  binarySearch(0, maxB)
}


function binarySearch(s, e) {
  let upperB = 0
  while(s <= e) {
    const m = parseInt((s + e) / 2)
    let assignedB = 0
    for(budget of budgets) {
      assignedB += Math.min(m, budget)
    }

    if(assignedB <= M) {
      upperB = m
      s = m + 1
    }
    else {
      e = m - 1
    }
  }
  console.log(upperB)
}

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions