일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ARM
- 코드트리빵
- 코드트리
- 루돌프의반란
- BFS
- 시뮬레이션
- 조합
- DP
- 이진탐색
- 백준
- Calibration
- 나무박멸
- DenseDepth
- 포탑부수기
- 토끼와 경주
- 마법의숲탐색
- 순서대로방문하기
- 삼성기출
- 3Dreconstruction
- 왕실의기사대결
- 마이크로프로세서
- ISER
- ros
- 소프티어
- 수영대회결승전
- 구현
- 싸움땅
- dfs
- 슈퍼컴퓨터클러스터
- ICER
- Today
- Total
목록이진탐색 (3)
from palette import colorful_colors
https://softeer.ai/practice/6252 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai언어: C++, 시간: 36ms 접근방법N이 크기 때문에 시간 최적화가 필요하다. 난 이진탐색의 업그레이드 버전인 Parametric search(매개변수 탐색)을 이용했다. 1. 문제에서 가능한 정답의 범위(최선의 최소 컴퓨팅 성능): 성능이 가장 낮은 컴퓨터 ~ 성능이 가장 높은 컴퓨터 + B의 루트 값 2. 최선의 최소 컴퓨팅 성능이 num일 때 예산 안에서 업그레이드가 가능한지 판별하는 함수 isPossible을 만들어준다!이후 가능한 정답 범위에서 이진탐색을 한다! → isPossible이 true면 start = mid + 1, false면 end = mid -1로 ..
https://softeer.ai/practice/6247 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 언어: C++, 시간: 406ms이진탐색을 꼭 써야 시간초과가 안 나는문제! 핵심 풀이 방법:1. 오름차순으로 정렬을 우선 때린다2. 쿼리에서 주어진 mi에 따라 중앙값이 나오는 가짓수를 판단한다:-> 주어진 n개의 수 중 가장 작거나 가장 큰 값이었을때: 절대 중앙값이 될 수 없다, 0-> 중간에 있는 값이었을때: 경우의 수는 mi 보다 작은 숫자 개수 x mi보다 큰 숫자 개수-> mi가 n개의 수 중 아무것도 아닐때: 0 #include #include #include using namespace std;int N, Q;int startNum, endNum;vector ..
참고서적: 이것이 취업을 위한 코딩테스트다 with python - 나동빈 up down 게임처럼 탐색범위를 반으로 쪼개면서 탐색하는 알고리즘. 따라서 시간복잡도는 O(logN)이다. 배열 내부 데이터가 정렬되어 있어야만 사용할 수 있는 알고리즘이다. 처리해야 할 데이터 개수나 값이 1000만이상처럼 무척 높으면 이진탐색과 같이 O(logN)의 속도를 내는 알고리즘을 떠올려야 문제를 풀 수 있는 경우가 많다. # 이진 탐색 구현 def binary_search(array, target, start, end): if start > end: return None # 아무런 값을 반환하지 않고 종료 mid = (start + end) // 2 # 찾은경우 중간점 인덱스 반환 if array[mid] == ta..