deo2kim
๋งž์™œํ‹€
deo2kim
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
    • CS
      • Algorithm
      • Data Structure
      • Network
      • DB
      • OS
    • Algorithm Problem
      • Python
      • JavaScript
    • Programming language
      • Python
      • JavaScript
    • Tool
      • Jquery
      • React
    • ๊ฐœ๋ฐœ
    • Infra

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

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

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

์ธ๊ธฐ ๊ธ€

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

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

๋ฐ˜์‘ํ˜•
hELLO ยท Designed By ์ •์ƒ์šฐ.
deo2kim

๋งž์™œํ‹€

[python] ๋ฐฑ์ค€ - 2512. ์˜ˆ์‚ฐ
Algorithm Problem/Python

[python] ๋ฐฑ์ค€ - 2512. ์˜ˆ์‚ฐ

2020. 10. 26. 08:28
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

  • S3 | ์ด๋ถ„ํƒ์ƒ‰

์ด๋ถ„ ํƒ์ƒ‰์˜ ๊ธฐ๋ณธ๋ฌธ์ œ

์ด๋ถ„ํƒ์ƒ‰์ด๋ž€? ํƒ์ƒ‰ ๋ถ€๋ถ„์„ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๋ถ„ํ• ํ•ด์„œ ๋‹ต์„ ์ฐพ๋Š” ๊ณผ์ •์ด๋‹ค.

 

1๋ถ€ํ„ฐ 10๊นŒ์ง€ ๊ฐ’์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ 7์ด๋ž€ ๊ฐ’์„ ์ฐพ์•„๋ณด์ž

์ตœ์†Œ๋Š” 1์ด๊ณ  ์ตœ๋Œ€๋Š” 10์ด๋‹ค. ์ ˆ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„๋ฉด 5์ธ๋ฐ

์šด์ด ์ข‹์•„์„œ 5๊ฐ€ ๋งž์œผ๋ฉด ์ •๋‹ต, ํ•˜์ง€๋งŒ ์ฐพ๋Š” ๊ฐ’์€ 7์ด๋ฏ€๋กœ ์ •๋‹ต์ด ์•„๋‹ˆ๋‹ค

 

ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•ด์„œ ์ฐพ๋Š” ๊ฐ’์ด 5๋ณด๋‹ค ์ž‘์œผ๋ฉด ์ตœ๋Œ€๋ฅผ ์ค„์ด๊ณ ,

์ฐพ๋Š” ๊ฐ’์ด 5๋ณด๋‹ค ํฌ๋ฉด ์ตœ์†Œ๋ฅผ ๋Š˜๋ฆฐ๋‹ค.

 

์ฐพ๋Š” ๊ฐ’์ด 5๋ณด๋‹ค ํฌ๋ฏ€๋กœ ์ตœ์†Œ๋ฅผ ๋Š˜๋ฆฐ๋‹ค.

์ตœ์†Œ๋Š” ์ ˆ๋ฐ˜+1 ์ตœ๋Œ€๋Š” ๊ทธ๋Œ€๋กœ 10์ด๋‹ค. ์ ˆ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„๋ฉด 8

 

์ฐพ๋Š” ๊ฐ’์€ 8๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ ์ตœ๋Œ€๋ฅผ ์ค„์ธ๋‹ค.

์ตœ์†Œ๋Š” 6 ์ตœ๋Œ€๋Š” ์ ˆ๋ฐ˜-1์ด๋‹ค. ์ ˆ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„๋ฉด 6

 

์ฐพ๋Š” ๊ฐ’์ด 6๋ณด๋‹ค ํฌ๋ฏ€๋กœ ์ตœ์†Œ๋ฅผ ๋Š˜๋ฆฐ๋‹ค.

์ตœ์†Œ๋Š” ์ ˆ๋ฐ˜+1 ์ตœ๋Œ€๋Š” 7์ด๋‹ค. ์ ˆ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„๋ฉด 7์ด๋ฏ€๋กœ ์ •๋‹ต!

 

4๋ฒˆ๋งŒ์— ์ •๋‹ต์„ ์ฐพ์•˜๋‹ค. for๋ฌธ์œผ๋กœ ๋Œ๋ฉด 7๋ฒˆ๋งŒ์— ์ฐพ์„๊ฒƒ์ด๋‹ค.

๋งŒ์•ฝ ๊ฐ’์ด ์–ด๋งˆ๋ฌด์‹œํ•˜๊ฒŒ ์ปค์ง„๋‹ค๋ฉด ํšจ์œจ๋ฉด์—์„œ ๋งค์šฐ ํฐ ์ฐจ์ด๊ฐ€ ๋‚  ๊ฒƒ์ด๋‹ค.

์šฐํˆฌ๋ฆฌ๋‹˜ ๋ธ”๋กœ๊ทธ - https://wootool.tistory.com/62

 

 

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

N = int(input())
budgets = list(map(int, input().split()))
M = int(input())

left = 0
right = max(budgets)
result = 0
while right >= left:
    mid = (left + right) // 2
    answer = 0
    for budget in budgets:
        if budget > mid:
            answer += mid
        else:
            answer += budget

    # answer: ๋‚ด๊ฐ€ ์ฑ…์ •ํ•œ ์ด ์˜ˆ์‚ฐ, M: ์ตœ๋Œ€ ์˜ˆ์‚ฐ
    if answer > M:
        right = mid - 1
    else:
        left = mid + 1
        result = max(result, answer)
print(right)

 

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

์ถœ์ฒ˜: BACKJOON ONLINE JUDGE

๋งํฌ: https://www.acmicpc.net/problem/2512

 

2512๋ฒˆ: ์˜ˆ์‚ฐ

์ฒซ์งธ ์ค„์—๋Š” ์ง€๋ฐฉ์˜ ์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๋Š” ์ •์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 3 ์ด์ƒ 10,000 ์ดํ•˜์ด๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” ๊ฐ ์ง€๋ฐฉ์˜ ์˜ˆ์‚ฐ์š”์ฒญ์„ ํ‘œํ˜„ํ•˜๋Š” N๊ฐœ์˜ ์ •์ˆ˜๊ฐ€ ๋นˆ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. ์ด ๊ฐ’๋“ค์€ ๋ชจ๋‘ 1 ์ด์ƒ

www.acmicpc.net

 

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

'Algorithm Problem > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[python] ๋ฐฑ์ค€ - 1325. ํšจ์œจ์ ์ธ ํ•ดํ‚น  (0) 2020.10.28
[python] ๋ฐฑ์ค€ - 10773. ๊ด„ํ˜ธ  (0) 2020.10.27
[python] ๋ฐฑ์ค€ - 1874. ์Šคํƒ ์ˆ˜์—ด  (0) 2020.10.25
[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ฟผ๋“œ์••์ถ• ํ›„ ๊ฐœ์ˆ˜ ์„ธ๊ธฐ (์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ1)  (4) 2020.10.24
[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - 3์ง„๋ฒ• ๋’ค์ง‘๊ธฐ (์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ1)  (2) 2020.10.22
    'Algorithm Problem/Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [python] ๋ฐฑ์ค€ - 1325. ํšจ์œจ์ ์ธ ํ•ดํ‚น
    • [python] ๋ฐฑ์ค€ - 10773. ๊ด„ํ˜ธ
    • [python] ๋ฐฑ์ค€ - 1874. ์Šคํƒ ์ˆ˜์—ด
    • [python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ฟผ๋“œ์••์ถ• ํ›„ ๊ฐœ์ˆ˜ ์„ธ๊ธฐ (์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ1)
    deo2kim
    deo2kim
    ์ฝ”๋”ฉ ๊ธฐ๋กํ•˜๊ธฐ

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