- 백준 다이나믹프로그래밍
- 항해99 코테 스터디
- 프로그래머스
- Django
- 장고 기초
- 스프링 기초
- TIL
- 코테
- 알고리즘 공부
- 백준 DFS와 BFS
- 알고리즘 문제
- 이분탐색
- 프로그래머스 level1
- 스프링 초보
- 장고
- 백준 dp
- programmers
- dp 알고리즘
- 항해99
- BFS
- 99클럽 코테 스터디
- 코테 연습
- 코딩테스트
- Django 기초
- 프로그래머스 레벨1
- 백준 구현
- Spring 초보
- spring 기초
- 백준
- 코딩테스트 연습
- Today
- Total
목록이분탐색 (3)
일일구름 IT
이번주 문제들은 다 이분 탐색에 대한 문제인 것 같다. 처음에 문제를 풀고 단순히 모든 강의 길이의 합을 m으로 나누어 평균을 구하고, 모든 강의를 넣는 다면 평균 크기인 블루레이 몇개 필요한지 구했다. 만약 블루레이 개수가 m보다 크면 평균 +1 을 해주고 작으면 평균 -1 을 하여 m과 같을때까지 블루레이 개수를 구했다. 이렇게 코드를 작성하여 제출한 결과 당연히 실패가 떴다. 역시 시간초과를 해결할때는 이분탐색이 기본인 것 같다. 내 코드n, m = map(int, input().split())lessons = list(map(int, input().split()))left = max(lessons)right = sum(lessons)while (left m: left = mid + 1 el..
일단 이 문제를 보고 for문을 이용해서 모든 점이 선분 내에 있는지 조사해보면 되지 않을까 ? 라고 생각했다그렇게 코드를 작성하고 제출한 결과 당연히 시간초과 !! ㅋㅋㅎㅋ 이번에도 이분 탐색 관련 문제인 것 같다 ... ^^내 생각엔 크기를 비교하는 탐색을 해야할때 시간초과를 해결하고 싶으면 이분탐색을 사용하는게 답인 것 같다 ! 내 코드n, m = map(int, input().split())points = list(map(int, input().split()))points.sort()lines = []for _ in range(m): a, b = map(int, input().split()) lines.append((a, b)) def min_binary_search(poi..
하하.. 이 문제는 실버2임에도 불구하고 너무 어려웠다 ... ㅜㅜ 흑흑미들러 난이도 쉽다는 말 취소.. 일단 내가 이분탐색 재귀함수에 대한 지식이 부족했던 것 같다.. !이번 기회에 더 깊이 공부하고 싶지만 당장 오픽공부가 더 급해서.. 다음으로 미루겠다 . ㅋㅋ 코드import mathk, n = map(int, input().split())lans = []for _ in range(k): lans.append(int(input()))lans.sort()max_lan = lans[-1]s = 0e = max_landef solution(lans, n, s, e): if s > e: return e cnt = 0 mid = math.ceil((s + e) / 2) ..