Skip to content

Commit 557aeeb

Browse files
committed
징검다리 문제 해결
1 parent 46dcfdc commit 557aeeb

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

이진탐색/징검다리.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#https://school.programmers.co.kr/learn/courses/30/lessons/43236
2+
3+
def solution(distance, rocks, n):
4+
start = 0
5+
end = distance
6+
7+
rocks.sort()#바위를 위치순으로 정렬
8+
rocks.append(distance)#도착지점을 추가함
9+
10+
while start <= end:
11+
mid = (start + end)//2
12+
print(mid)
13+
standard = 0
14+
num = 0
15+
for rock in rocks:
16+
between = rock - standard
17+
if mid <= between:
18+
standard = rock
19+
else:
20+
num += 1
21+
22+
if num > n:
23+
end = mid - 1
24+
else:
25+
answer = mid#다른 사람들의 풀이를 보면 여기서 미드가 꼭 거리의 최솟값이라는 보장이 없다고 생각해서 돌거리 최소값을 따로 갱신해 주는 경우가 있음
26+
start = mid + 1
27+
28+
return answer
29+
30+
solution(25,[2, 14, 11, 21, 17],2)

0 commit comments

Comments
 (0)