분류 전체보기
-
백준 3079(입국심사)전공/알고리즘 2020. 6. 3. 11:49
N개의 줄에 M명이 통과할 수 있는 최소 시간을 구해라 어떤 값을 구하려고 할 때 그 값이 맞는지 안 맞는지 확인 할 수 있는 문제면서, 그 조건이 정렬된 경우에는 이분탐색으로 풀 수 있는 것같다. min heap에 조건을 추가해서 구할 수도 있다고 생각을 했지만 구체적인 구현이 불가한것 같아서 스킵하였다. 일반적인 이분탐색문제와 같이 경계값을 설정한 뒤에 mid값이 원하는 조건을 만족하는지 찾으면 된다. 적절하게 최댓값, 최솟값을 설정한다. 이 때 최댓값의 크기는 시간에 별 영향을 안주는 것 같지만 (logn의 속도이므로) 잘못하면 right + left의 최대크기 때문에 오버플로우가 발생할 수 있기 때문에 조심한다. 이것도 while(right>=left) right = mid - 1; left = ..
-
백준 1629(곱셈)전공/알고리즘 2020. 6. 2. 12:44
#include using namespace std; #define MAX 31 int A, B, C, tmp = 1024*1024*1024, result = 1; int how_m[MAX]; bool check2 = false; bool check[MAX] = { false }; int main() { cin >> A >> B >> C; how_m[0] = A%C; for (int i = 1; i = 0; i--) { if (B >= tmp) { B -= tmp; check[i] = true; } tmp /= 2; } for (int i = 0; i < MAX; i..
-
백준 1654(랜선 자르기)전공/알고리즘 2020. 5. 31. 17:07
정확히 작년 5월 26일 부터 틀린 문제. 이분탐색을 접하면서 가장 많이 틀린 문제고 오늘 드디어 정답을 맞췄다. 이 문제가 이분탐색이란걸 문제보고 안 것은 아니지만 이분탐색으로 풀 수 있는 근거를 생각해보면, 문제가 정렬되어 있다? 정답으로 다가가는게 크기와 비례한다라고 해야되나 풀 수 없는 문제를 생각해보면 비교하는 값이 값의 크기의 방향성과 상관없다고 말하면 될 것 같다. 이분탐색은 정렬된 수에서 원하는 값을 보다 빠르게 찾을 수 있다. 소주 병뚜껑 숫자 맞추기 하듯이 중간값을 계속 대입하여 log n의 속도로 값을 찾는다. 코드를 구성하는데 가장 중심은 1. 빠뜨리는 수가 없이 탐색을 하느냐 2. 그 수가 조건에 맞는 수냐 이 두가지 조건이었다. 2번 조건은 잘 구성해서 짠 것 같았지만 계속해서 ..
-
c언어 과제(숫자야구)전공/c언어 2019. 6. 2. 14:03
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 #include #include #include #define MAX 10 void s_b(int *str, int *b, int ans[], int gue[]); int main() { int num[3] = { 0 }; int guess[3]; char start; int i; int strike; int ball; srand(time(NULL)); printf("스트라이크 볼 게임 하시겠습니까? (Y/N)\n..
-