[백준 알고리즘] 1181번 단어 정렬 from sys import stdin n = int(stdin.readline()) n_list = [] for i in range(n): n_list.append(stdin.readline().strip()) setList = list(set(n_list)) setList.sort() setList.sort(key=len) for i in range(len(setList)): print(setList[i]) 백준 알고리즘/정렬 2022.03.11
[백준 알고리즘] 10814번 나이순 정렬 from sys import stdin n = int(stdin.readline()) list = [] for i in range(n): list.append(stdin.readline().split()) list.sort(key=lambda x : int(x[0])) for i in range(n): print(list[i][0], list[i][1]) 백준 알고리즘/정렬 2022.03.11
[백준 알고리즘] 2512번 예산 - Python from sys import stdin n = int(stdin.readline()) n_list = sorted(map(int, stdin.readline().split())) m = int(stdin.readline()) def binarySearch(n_list): start, end = 0, max(n_list) while(start mid: total += mid else: total += i if total 백준 알고리즘/이진탐색 2022.03.11
[백준 알고리즘] 2750 수 정렬하기 - Python from sys import stdin n = int(stdin.readline()) list = [] for i in range(n): list.append(int(stdin.readline())) list.sort() for i in range(n): print(list[i]) 백준 알고리즘/정렬 2022.03.11
[백준 알고리즘] 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.. 백준 알고리즘/이진탐색 2022.03.10
[백준 알고리즘] 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.. 백준 알고리즘/이진탐색 2022.03.10
[백준 알고리즘] 1920번 수 찾기 - Python n = int(input()) n_list = list(map(int, input().split())) n_list.sort() m = int(input()) m_list = list(map(int, input().split())) def binarySearch(target, n_list): start, end = 0, len(n_list)-1 while(start n_list[mid]: start = mid + 1 else: return 1 return 0 if __name__ == "__main__": for i in range(len(m_list)): print(binarySearch(m_list[i], n_list)) 백준 알고리즘/이진탐색 2022.03.09
[백준 알고리즘] 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.. 백준 알고리즘/이진탐색 2021.12.08
[백준 알고리즘] 1920번 수 찾기 - C #include #include #define BUCKET_SIZE 1000 struct bucket* hashTable = NULL; struct node { int key; struct node* next; }; struct bucket { struct node* head; int count; }; int createHash(int key) { if(key key = key; newNode->next = NULL; return newNode; } void add(int key) { int hashIndex = createHash(key); struct node* newNode = createNode(key); if(hashTable[hashIndex].count == 0) { hashTable[has.. 백준 알고리즘/해시 2021.12.03
[백준 알고리즘] 2750번 수 정렬하기 - C #include #define MAX_SIZE 1000 int main(int argc, char* argv[]) { int arr[MAX_SIZE]; int input; scanf("%d", &input); for(int i = 0; i 0; i--) { for(int j = 0; j arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } for(int i = 0; i 백준 알고리즘/정렬 2021.11.24