๐ ๋ฌธ์ ๋ถ์
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ํํ๋ก ์
๋ ฅ๋ฐ๋๋ค.
'๋ฐฑ์ค | Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค][11724] ์ฐ๊ฒฐ ์์์ ๊ฐ์ | ํ์ด์ฌ (0) | 2024.05.16 |
---|---|
[๋ฐฑ์ค][1260] DFS์ BFS | ํ์ด์ฌ (0) | 2024.05.13 |
[๋ฐฑ์ค][2805] ๋๋ฌด์๋ฅด๊ธฐ | ํ์ด์ฌ (0) | 2024.05.09 |
[๋ฐฑ์ค][1158] ์์ธํธ์ค ๋ฌธ์ | ํ์ด์ฌ (0) | 2024.05.08 |
[๋ฐฑ์ค][10828] ์คํ | ํ์ด์ฌ (0) | 2024.05.06 |