https://github.com/Dev-Guccin
Guccin
https://github.com/Dev-Guccin
전체 방문자
오늘
어제
  • 분류 전체보기 (172)
    • 알고리즘 (140)
    • 삽질방지 (13)
    • SystemHacking (1)
    • 일상 (4)
    • 개발 (8)
    • 스프링 부트 REST API 개발일지 (5)
    • JPA (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 그리디
  • 최단경로
  • 스택
  • 파이썬
  • 유클리드호제법
  • 다익스트라
  • 재귀함수
  • 최소힙
  • python3
  • 이분 탐색
  • 최대공약수
  • DFS
  • 백트래킹
  • 다이나믹프로그래밍
  • DP
  • LIS
  • 큐
  • BFS
  • 유니온 파인드
  • 그래프
  • 백준
  • heapq
  • MST
  • 프로그래머스
  • 이분탐색
  • 다이나믹 프로그래밍
  • Python
  • 재귀
  • 12015
  • counter

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
https://github.com/Dev-Guccin

Guccin

[python3] 백준 2110 풀이 ( 공유기 설치, 이분탐색 )
알고리즘

[python3] 백준 2110 풀이 ( 공유기 설치, 이분탐색 )

2021. 8. 24. 13:14

저번에 푼 프로그래머스와 비슷한 문제였다. 그런데 상당히 헤매고 풀었기 때문에 다시 한번 풀이를 정리해 본다.

 

[python3] 프로그래머스 징검다리 풀이 ( 이분탐색 )

왜 이분 탐색문제인지 이해를 할수가 없어서 상당히 헤맸다. 결국 풀이를 봤다. 우선 문제를 읽어보면, 징검다리를 만들 때 n만큼 돌을 제거하고 최솟값을 찾는다. 이때 최솟값을 최대로 만드는

guccin.tistory.com

우선 문제를 읽어보자

문제를 읽어보면 입력으로 x가 0~1,000,000,000의 범위를 가진다. 딱 보자마자 완전 탐색으로는 절대 돌수가 없다. 따라서 이분탐색의 냄새가 난다.

x의 좌표에서 이분탐색의 느낌이 나는데, 우리는 출력으로 두 공유기 사이의 최대 거리를 출력해야한다. 공유기 사이의 최대거리를 만족하기 위해서는 2가지가 필요하다.

1. 최대값 x가 존재할때 x보다 긴 거리에 공유기 설치
2. 집에서 C만큼 공유기 설치

=> 말이 이상하긴 한데, 결국 공유기의 개수와 최대거리를 만족해야한다. 그럼 최대거리를 이분탐색으로 놓고 공유기를 만족하는지 연산을 진행하면 쉽게 구할 수 있다.

N,C = map(int, input().split())
house = []
for _ in range(N):
    house.append(int(input()))
house.sort()
L=1
R=house[-1]//2
H=0
while L<=R:
    M = (L+R)//2

    install = 1
    install_list = [house[0]]
    for i in range(1,N):
        if (house[i] - install_list[-1] >= M):
            install_list.append(house[i])
            install += 1
    if install >= C:
        H = M
        L = M+1
    else:
        R = M-1
print(H)
저작자표시 (새창열림)

'알고리즘' 카테고리의 다른 글

[pypy3] 백준 12015 풀이 ( 가장 긴 증가하는 부분 수열 2 , LIS , 이분 탐색 )  (0) 2021.08.28
#5 알고리즘 공부 8/24 리뷰  (0) 2021.08.24
[python3] 프로그래머스 징검다리 풀이 ( 이분탐색 )  (0) 2021.08.22
코딩테스트 알고리즘별 전략 및 요약 (수정 중...)  (0) 2021.08.20
[python3] 백준 1916 풀이 ( 최소비용 구하기, 다익스트라, 그래프 )  (0) 2021.08.19
    '알고리즘' 카테고리의 다른 글
    • [pypy3] 백준 12015 풀이 ( 가장 긴 증가하는 부분 수열 2 , LIS , 이분 탐색 )
    • #5 알고리즘 공부 8/24 리뷰
    • [python3] 프로그래머스 징검다리 풀이 ( 이분탐색 )
    • 코딩테스트 알고리즘별 전략 및 요약 (수정 중...)
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin

    티스토리툴바