백준 알고리즘 17

[백준 알고리즘] 10815번 숫자 카드 - Python

10815번 문제는 수가 적힌 카드가 주어졌을 경우 이 수가 적혀 있는 카드를 가지고 있는 아닌지를 구하는 알고리즘이다. 이진 탐색을 통해 이 문제를 해결하였다. O(logN) from sys import stdin n = stdin.readline().split() n_list = sorted(map(int, stdin.readline().split())) m = stdin.readline().split() m_list = list(map(int, stdin.readline().split())) def binarySearch(target, list): start, end = 0, len(list)-1 while(start list[mid]): start = mid + 1 else: return 1 re..

[백준 알고리즘] 10816번 숫자 카드 2 - Python

10816번은 주어진 값과 비교하여 가지고 있는 숫자 카드의 개수를 출력해야 하는 문제이다. 처음에 이진 탐색을 통해 풀었는데 시간 초과로 실패하였다. from sys import stdin from collections import Counter n = stdin.readline() n_list = sorted(map(int, stdin.readline().split())) m = stdin.readline() m_list = list(map(int, stdin.readline().split())) def binary(target, n_list): start, end = 0, len(n_list) - 1 while(start n_list[mid]: start = mid + 1 else: return C..

[백준 알고리즘] 2805번 나무 자르기 - C

#include #include #define MAX_SIZE 1000001 using namespace std; int arr[MAX_SIZE]; // 나무들의 배열 int n, m; // 입력 받는 나무 개수와 가져 가려는 총 나무의 길이 long long sum, value; long long high = 1000000000; void search(long long left, int right) { // 이진 탐색, 재귀 함수 if(left = m) { // 원하는 만큼 잘리고 절단기의 높이가 현재보다 높 을 경우 value = mid, 또한 절단기의 높이가 m보다 같거나 크다면 value = mid; search(mid + 1, right); } else { // 작다면 search(left, m..