문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/43236
코딩테스트 연습 - 징검다리
출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가
programmers.co.kr
이분 탐색을 활용하는 문제였습니다.
알고리즘은 아래와 같습니다.
1. rocks 벡터를 오름차순 정렬해줍니다.
2. 각 지점 사이의 거리 최솟값은 1, 최댓값은 distance로 설정해준 뒤 이분 탐색을 진행해줍니다.
2.1 mid 값보다 구간이 짧은 돌은 삭제해주고 삭제된 돌들이 n 이하인지 확인해줍니다.
2.2 n 이하라면 최소값을 mid로 설정해 높여주고 n 초과라면 최댓값을 mid로 설정해 낮춰줍니다.
3. 2번 과정을 통해 얻은 구간의 최소 중 최대값을 반환해줍니다.
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
반응형
'알고리즘 > programmers' 카테고리의 다른 글
[Programmers 위클리 챌린지 8주차] 최소직사각형 (0) | 2021.09.27 |
---|---|
[Programmers] 로또의 최고 순위와 최저 순위 (0) | 2021.09.27 |
[Programmers 코딩테스트 고득점 Kit] 입국심사 (0) | 2021.09.26 |
[Programmers 코딩테스트 고득점 Kit] 단속카메라 (0) | 2021.09.25 |
[Programmers 코딩테스트 고득점 Kit] 섬 연결하기 (0) | 2021.09.24 |