랜선 자르기
이분 탐색 문제 두 문제로 기초를 다졌다!! 나무 자르기 문제와 비슷해서 수월하게 풀 수 있었다.
CODE
import sys
read = sys.stdin.readline
k, n = map(int, read().split())
LAN = list(int(read()) for _ in range(k))
MAX_LAN = sum(LAN)//n
MIN_LAN = 0
if MAX_LAN == 1:
print(1)
sys.exit()
def cut(x):
tot = 0
for l in LAN:
tot += l//x
return tot
answer = 0
while MAX_LAN >= MIN_LAN:
mid = (MIN_LAN+MAX_LAN)//2
if cut(mid) >= n:
answer = max(answer, mid)
if answer == mid:
MIN_LAN = mid+1
else:
break
else:
MAX_LAN = mid-1
print(answer)
숫자 카드 2
이분 탐색 문제였는데, dictionary를 활용해 풀었다… 이분 탐색으로 다시 풀어보자.
CODE
import sys
read = sys.stdin.readline
_ = int(read())
tmp1 = list(map(int, read().split()))
_ = int(read())
tmp2 = list(map(int, read().split()))
num = dict()
for i in tmp1:
if i in num:
num[i] += 1
else:
num[i] = 1
answer = []
for i in tmp2:
if i in num:
answer.append(num[i])
else:
answer.append(0)
print(*answer)
풀어야 할 문제
- 스타트 택시🔥🔥
- 미네랄
- 아기 상어
- 전깃줄 -2
- 치즈🔥
- 소가 길을 건너간 이유
- 벽 부수고 이동하기
- 알 수 없는 문장
```