일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- datalake
- 단위테스트
- functional thinking
- 데이터야놀자
- kafka
- 테스트주도개발
- 알고스팟
- coursera
- 데이터유통
- clean code
- 회고
- 해커컵
- 함수형 사고
- 동시성
- 개발7년차매니저1일차
- 박종천
- Raw-Request-URI
- 실전사례
- hackercup2017
- 데이터레이크
- 켄트백
- 개발자
- 클린코드
- 2016년회고
- wait region split
- spray
- 데이터플랫폼
- 개발자로살아남기
- 코딩인터뷰
- 2017회고
Archives
- Today
- Total
Software Engineering Note
DARPA Grand Challenge 본문
문제: DARPA / 동적계획법, 이진탐색
처음에 greedy로 접근했다가 몇 번 물먹은 문제다.
잊고 지내다가 알고리즘 책(프로그래밍 콘테스트 챌린징)에서 유사한 문제를 보고 다시 도전해서 성공했다.
핵심전략은 다음과 같다.
모든 카메라에 대해, 임의의 두 카메라 간격을 d로 만들 수 있는지 확인한다.
1. d값은 입력으로 주어진 간격의 최대 값부터 시작한다.
2. 만약 모든 카메라를 d간격 이상으로 설치할 수 있다면 d값을 늘려서 시도해본다. 왜? 가장 가까운 카메라 간격을 최대화 시켜야 하니까.
3. 만약 실패하면 d값을 줄여서 시도해본다.
이렇게 d값을 조절해가면서 범위를 좁혀나간다. 2, 3번 과정에 이진탐색이 적용된다.
2번일 경우 left 값을 mid값으로 한다. 3번일 경우 right 값을 mid값으로 하면된다.
언제까지? 오차가 허용되는 범위까지.
코드: https://github.com/xgate/algospot/blob/master/SEARCH/DARPA.cpp
'알고리즘 > 알고스팟' 카테고리의 다른 글
Weekly Calendar (0) | 2014.08.25 |
---|---|
째능 교육 (0) | 2014.08.23 |
Lucky Lucky Number (0) | 2014.08.16 |
Microwaving Lunch Boxes (0) | 2014.08.16 |
Repeatless Numbers (0) | 2014.08.16 |