https://school.programmers.co.kr/learn/courses/30/lessons/43236
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
오늘 문제는 이분탐색 문제였다.
해당 문제는 풀이를 참고했다!
이분탐색 문제는 연습을 더해야겠다고 느꼈다.
"""
입력의 사이즈가 너무 커서, 완전탐색이 아니라고 판단하면! 이분탐색을 시도해보자!!
"""
def solution(distance, rocks, n):
left = 1
right = distance
rocks = sorted(rocks)
rocks.append(distance)
while left <= right:
mid = (left+right) //2
remove = 0
prev = 0
for v in rocks:
dist = v - prev
if dist < mid:
remove += 1
if remove > n:
break
else:
prev = v
if remove > n:
right = mid - 1
else:
answer = mid
left = mid + 1
return answer
아래는 하나씩 생각하면서 정리한 풀이다.


복습이 필요한 문제!
'👩💻 코테 공부 > 코테 공부' 카테고리의 다른 글
| [코테 - py] 대충 만든 자판 (0) | 2024.08.11 |
|---|---|
| [코테 - py] 소수 찾기 (0) | 2024.08.11 |
| [코테 - py] 입국 심사 (0) | 2024.08.03 |
| [코테 - py] 가장 큰 수 (0) | 2024.08.03 |
| [코테 - py] 최대 힙 (0) | 2024.07.31 |