glowing713
Frontend-Deep-Dive
glowing713
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (97)
    • Languages (11)
      • JavaScript ๐Ÿ’› (3)
      • Python ๐Ÿ (4)
      • Java โ˜•๏ธ (3)
      • Swift ๐Ÿงก (1)
    • Computer_Science (1)
      • Computer_Network ๐Ÿ•ธ (1)
    • Web_Frontend (4)
      • Vue.js (1)
    • Problem_Solving (76)
    • Server (1)
      • Spring ๐Ÿ€ (1)
    • AI (2)
      • NLP ๐Ÿ—ฃ (1)
      • AI_Math โž— (1)
    • ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊พธ๋ฏธ๊ธฐ โœŒ (1)
    • ์ƒ๊ฐ์ •๋ฆฌ โœ๐Ÿป (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿง‘๐Ÿปโ€๐Ÿ’ปGithub

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • boostcampaitech
  • ์ด๋ถ„ํƒ์ƒ‰
  • Python
  • Java
  • 2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ
  • c++
  • Algorithm
  • mst
  • ๋™์ ๊ณ„ํš๋ฒ•
  • Baekjoon
  • ์™„์ „ํƒ์ƒ‰
  • ์นด์นด์˜ค ๊ธฐ์ถœ
  • bfs
  • Stack
  • BOJ
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • ps
  • brute-force
  • DP
  • binary search

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
glowing713

Frontend-Deep-Dive

[BOJ] ๋ฐฑ์ค€ 2512 ์˜ˆ์‚ฐ / ์ด๋ถ„ํƒ์ƒ‰
Problem_Solving

[BOJ] ๋ฐฑ์ค€ 2512 ์˜ˆ์‚ฐ / ์ด๋ถ„ํƒ์ƒ‰

2021. 2. 11. 23:53

์ด๋ฏธ์ง€๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋ฌธ์ œ ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

 

 

๐Ÿ’ญ ๋ฌธ์ œ ์ดํ•ด

 

๊ตญ๊ฐ€์˜ˆ์‚ฐ์ด ์ฃผ์–ด์ง€๊ณ , N๊ฐœ์˜ ์ง€๋ฐฉ์—์„œ ์˜ˆ์‚ฐ ์š”์ฒญ์ด ์ฃผ์–ด์งˆ ๋•Œ ์ •ํ•ด์ง„ ์˜ˆ์‚ฐ ๋‚ด์—์„œ ์ตœ๋Œ€ ์–ผ๋งˆ๊นŒ์ง€ ๋ฐฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ง€ ๊ณ„์‚ฐํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

๋‚ด์šฉ์€ ๋‹ค๋ฅด์ง€๋งŒ ํฐ ํ‹€์€ ์ด์ „์— ํ’€์—ˆ๋˜ ์ด๋ถ„ํƒ์ƒ‰ ๋ฌธ์ œ๋“ค๊ณผ ๋‹ค๋ฅผ ๋ฐ”๊ฐ€ ์—†๋‹ค.

 

์ตœ์†Œ ์˜ˆ์‚ฐ์ธ 1๋ถ€ํ„ฐ ์ตœ๋Œ€ ์˜ˆ์‚ฐ์ธ max(์ง€๋ฐฉ์˜ ์˜ˆ์‚ฐ์š”์ฒญ๋“ค) ์‚ฌ์ด์—์„œ ์ด๋ถ„ํƒ์ƒ‰์„ ํ•˜๋ฉฐ ๊ทธ ๊ฐ’์„ ์ฐพ์•„๋‚ด๋ฉด ๋œ๋‹ค.

 

 

 

๊ตฌํ˜„ ์–ธ์–ด: Python

 

import sys

r = sys.stdin.readline

def binary_search(requests: list, budget: int) -> int:
    result = 0
    left = 1
    right = max(requests)
    while left <= right:
        mid = (left + right) // 2
        total_sum = sum(mid if req >= mid else req for req in requests)
        if total_sum <= budget:
            result = mid
            left = mid + 1
        else:
            right = mid - 1
    return result

_, bud_requests, total_bud = r(), list(map(int, r().split())), int(r())
print(binary_search(bud_requests, total_bud))

 

 

์ด๋Ÿฌํ•œ ์–‘์‹์˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋“ค์—์„œ

ํ˜„์žฌ ์„ค์ •ํ•œ ์ตœ๋Œ€ ์ƒํ•œ์•ก(mid) ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์‚ฐ์•ก์„ ๊ณ„์‚ฐํ•˜๋Š” total_sum ๋ถ€๋ถ„์˜ ์—ฐ์‚ฐ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ

Counter๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ™์€ ๊ฐ’์ด ์—ฌ๋Ÿฌ ๊ฐœ ์กด์žฌํ•˜๋ฉด value*key ์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณค ํ–ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฌธ์ œ์—์„œ ์˜ˆ์‚ฐ ์š”์ฒญ์ด ์ตœ๋Œ€ 10,000 ๊ฐœ์ด๋‹ค.

import sys
from collections import Counter

r = sys.stdin.readline

def binary_search(requests: Counter, budget: int) -> int:
    result = 0
    left = 1
    right = max(requests)
    while left <= right:
        mid = (left + right) // 2
        total_sum = sum(mid*cnt if req >= mid else req*cnt for req, cnt in requests.items())
        if total_sum <= budget:
            result = mid
            left = mid + 1
        else:
            right = mid - 1
    return result

_, bud_requests, total_bud = r(), Counter(map(int, r().split())), int(r())
print(binary_search(bud_requests, total_bud))

 

์œ„ ๊ฒฐ๊ณผ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ฒ˜๋ฆฌํ•  ๊ฐ’์˜ ์ˆ˜๊ฐ€ ๋งŽ์ง€ ์•Š๋‹ค๋ฉด ์˜คํžˆ๋ ค Counter๋ฅผ ์“ฐ๋Š” ๊ฒƒ์ด ์‹œ๊ฐ„ ํšจ์œจ ์ธก๋ฉด์—์„œ ๋–จ์–ด์ง€๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.(์œ„๊ฐ€ Counter, ์•„๋ž˜๊ฐ€ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•)

 

 

๐Ÿ“ ๋ฐ์ดํ„ฐ์˜ ์ˆ˜๊ฐ€ ๋งŽ๋‹ค๋ฉด Counter๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์‹คํ–‰ ์‹œ๊ฐ„์„ ์ค„์ด๊ธฐ ์œ„ํ•œ ์ข‹์€ ์‹œ๋„์ด๋‚˜,

๋ฐ์ดํ„ฐ์˜ ์ˆ˜๊ฐ€ ์ ๋‹ค๋ฉด ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์ด ์˜คํžˆ๋ ค ์ข‹๋‹ค..!

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Problem_Solving' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋“ฑ๊ตฃ๊ธธ / ๋™์  ๊ณ„ํš๋ฒ•(Dynamic-Programming)  (0) 2021.03.11
[BOJ] ๋ฐฑ์ค€ 1535 ์•ˆ๋…• / ๋™์  ๊ณ„ํš๋ฒ•(Dynamic-Programming)  (0) 2021.03.11
[BOJ] ๋ฐฑ์ค€ 1764 ๋“ฃ๋ณด์žก / ์ด๋ถ„ํƒ์ƒ‰  (0) 2021.02.11
[BOJ] ๋ฐฑ์ค€ 10816 ์ˆซ์ž ์นด๋“œ 2 / ์ด๋ถ„ํƒ์ƒ‰  (0) 2021.02.09
[BOJ] ๋ฐฑ์ค€ 1654 ๋žœ์„  ์ž๋ฅด๊ธฐ / ์ด๋ถ„ํƒ์ƒ‰  (0) 2021.02.09
    'Problem_Solving' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋“ฑ๊ตฃ๊ธธ / ๋™์  ๊ณ„ํš๋ฒ•(Dynamic-Programming)
    • [BOJ] ๋ฐฑ์ค€ 1535 ์•ˆ๋…• / ๋™์  ๊ณ„ํš๋ฒ•(Dynamic-Programming)
    • [BOJ] ๋ฐฑ์ค€ 1764 ๋“ฃ๋ณด์žก / ์ด๋ถ„ํƒ์ƒ‰
    • [BOJ] ๋ฐฑ์ค€ 10816 ์ˆซ์ž ์นด๋“œ 2 / ์ด๋ถ„ํƒ์ƒ‰
    glowing713
    glowing713

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”