프로그래머스 43236. 징검다리

2024. 11. 3. 17:48·프로그래머스

https://school.programmers.co.kr/learn/courses/30/lessons/43236?language=python3

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

def solution(distance, rocks, n):
    rocks.sort()  # 바위 위치를 오름차순 정렬
    rocks.append(distance)  # 도착점을 마지막 위치에 추가
    
    left, right = 0, distance  # 거리의 최소, 최대값 초기화
    answer = 0

    while left <= right:
        mid = (left + right) // 2  # 현재 탐색 중인 최소 거리(mid 처음세팅은 최댓값으로)
        prev = 0  # 이전 바위의 위치 (0부터 시작)
        remove_count = 0  # 제거할 바위의 수

        # 바위 사이의 거리가 mid 이상이 되도록 제거할 바위 수를 계산
        for rock in rocks:
            if rock - prev < mid:  # 두 바위 사이의 거리가 mid보다 작으면
                remove_count += 1  # 현재 바위(rock)를 제거해 거리를 확보
            else:
                prev = rock  # 거리가 충분하면 이전 위치 갱신

        # 바위 제거가 가능한 경우
        if remove_count > n:  # 너무 많은 바위를 제거해야 하는 경우
            right = mid - 1  # mid를 줄여 더 작은 거리를 시도
        else:  # 제거 수가 충분한 경우
            answer = mid  # 현재 mid를 답으로 갱신
            left = mid + 1  # 더 큰 거리를 탐색

    return answer

처음에 이분탐색인 줄 모르고 무식하게 반복문으로 풀려다 시간초과났었다...

저작자표시 (새창열림)

'프로그래머스' 카테고리의 다른 글

프로그래머스 77486. 다단계 칫솔 판매  (0) 2024.11.05
프로그래머스 84512. 모음사전  (0) 2024.11.04
프로그래머스 42586. 기능개발  (0) 2023.11.15
프로그래머스 92341. 주차 요금 계산  (0) 2023.11.09
프로그래머스 72413. 합승 택시 요금  (0) 2023.11.08
'프로그래머스' 카테고리의 다른 글
  • 프로그래머스 77486. 다단계 칫솔 판매
  • 프로그래머스 84512. 모음사전
  • 프로그래머스 42586. 기능개발
  • 프로그래머스 92341. 주차 요금 계산
버그잡는고양이발
버그잡는고양이발
주니어 개발자입니다!
  • 버그잡는고양이발
    지극히평범한개발블로그
    버그잡는고양이발
  • 전체
    오늘
    어제
    • 분류 전체보기 (381)
      • React (16)
      • Next.js (5)
      • Javascript (5)
      • Typescript (4)
      • Node.js (2)
      • Cs (16)
      • 트러블 슈팅 (5)
      • Html (1)
      • Css (3)
      • Django (0)
      • vue (0)
      • Java (1)
      • Python (0)
      • 독서 (1)
      • 기타 (3)
      • 백준 (192)
      • swea (31)
      • 프로그래머스 (30)
      • 이코테 (4)
      • 99클럽 코테 스터디 (30)
      • ssafy (31)
      • IT기사 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 인기 글

  • 태그

    항해99
    99클럽
    Til
    개발자취업
    코딩테스트준비
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
버그잡는고양이발
프로그래머스 43236. 징검다리
상단으로

티스토리툴바