๋ฐฑ์ค€ | Baekjoon

[๋ฐฑ์ค€][1654] ๋žœ์„  ์ž๋ฅด๊ธฐ | ํŒŒ์ด์ฌ

sungkshon 2024. 5. 11. 11:22
๋ฐ˜์‘ํ˜•


๐Ÿ‘‰ ๋ฌธ์ œ ๋ถ„์„

N๊ฐœ์˜ ๋žœ์„ ์„ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

์˜ค์˜์‹์€ ์ž์ฒด์ ์œผ๋กœ K๊ฐœ์˜ ๋žœ์„ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ K๊ฐœ์˜ ๋žœ์„ ์€ ๊ธธ์ด๊ฐ€ ์ œ๊ฐ๊ฐ์ด๋‹ค.

๋ชจ๋‘ N๊ฐœ์˜ ๊ฐ™์€ ๊ธธ์ด์˜ ๋žœ์„ ์œผ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— K๊ฐœ์˜ ๋žœ์„ ์„ ์ž˜๋ผ์„œ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

 

N๊ฐœ๋ณด๋‹ค ๋งŽ์ด ๋งŒ๋“œ๋Š” ๊ฒƒ๋„ N๊ฐœ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์— ํฌํ•จํ•œ๋‹ค.

์ด๋•Œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๋žœ์„ ์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.

 
๐Ÿ‘‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„

N๊ฐœ์˜ ๋žœ์„ ๋“ค์„ ๋‹ด๋Š” ๋ฆฌ์ŠคํŠธ cable์„ ๋งŒ๋“ค์–ด์ค€๋‹ค.

๋žœ์„  ์ตœ๋Œ€์˜ ๊ธธ์ด๋Š” 1๋ถ€ํ„ฐ max(cable)๊นŒ์ง€ ๊ฐ€๋Šฅํ•˜๋‹ค.

์ด ๋ฒ”์œ„๋ฅผ ์ด์ง„ํƒ์ƒ‰ํ•ด์„œ ๋žœ์„ ์˜ ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ์ฐพ๋Š”๋‹ค.


๐Ÿ‘‰ ์ฝ”๋“œ

import sys
from collections import deque

n, k = map(int, sys.stdin.readline().split())
cable = deque()

for i in range(1, n+1):
    cable.append(int(input()))

left, right = 1, max(cable)  #  1 <= ๋žœ์„  ์ตœ๋Œ€์˜ ๊ธธ์ด <= max(cable)
while left <= right:
    x = 0 # ๋žœ์„ ์˜ ๊ฐœ์ˆ˜
    mid = (left + right) // 2
    for j in cable:
        if j >= mid:
            x += j//mid  #  ๋ชซ = ๋žœ์„ ์˜ ๊ฐœ์ˆ˜
    if x < k:
        right = mid-1
    else:
        result = mid
        left = mid+1
print(result)


 
๐Ÿ‘‰ ํ‹€๋ฆฐ ์ด์œ 
TypeError: '>' not supported between instances of 'map' and 'map’
 
๐Ÿ‘‰  ํ‹€๋ฆฐ ๋ถ€๋ถ„ ์ˆ˜์ • or ๋‹ค๋ฅธ ํ’€์ด
map์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ์ž…๋ ฅ ๋ฐ›์„ ๋•Œ cable.append(int(input())) ์‚ฌ์šฉ

map์—ฐ์‚ฐ์ด ๋ฐ˜๋ณต ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•ด์ฃผ๋Š” ํŒŒ์ด์ฌ ๋‚ด์žฅ ํ•จ์ˆ˜ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ตณ์ด for๋ฌธ์•ˆ์—์„œ ์จ์ค„ ํ•„์š”๊ฐ€ ์—†๋‹ค. 
 
๐Ÿ‘‰ ๋А๋‚€์  or ๊ธฐ์–ตํ• ์ •๋ณด
cable ๋ฆฌ์ŠคํŠธ๋กœ ์ž…๋ ฅ ๋ฐ›์„๋–„ intํ˜•์ด ์•„๋‹Œ strํ˜•ํƒœ๋กœ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.

๋ฐ˜์‘ํ˜•