본문 바로가기

algorithm/Sorting, Binary Search

(7)
[C++] BOJ 1026 보물 문제 백준 1026번 보물 https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 코드 #include #include using namespace std; int n, a[55], b[55]; int main() { cin >> n; for (int i = 0; i > a[i]; for (int i = 0; i > b[i]; sort(a, a + n); sort(b, b + n); int re..
[C++] BOJ 11656 접미사 배열 문제 백준 11656번 접미사 배열 https://www.acmicpc.net/problem/11656 코드 #include #include #include #include using namespace std; string str; int main() { cin >> str; vector suffix; int len = str.length(); for (int i = 0; i < len; i++) { string s = str.substr(i, len); suffix.push_back(s); } sort(suffix.begin(), suffix.end()); for (int i = 0; i < len; i++) cout
[C++] BOJ 1920 수 찾기 문제 www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 코드 #include #include using namespace std; int n, A[100001], m, num; int search(int num) { int lt = 0; int rt = n; int mid; while (lt A[mid]) lt = mid + 1; else rt = mid - 1; } return 0; } int main() { ..
[C++] BOJ 10815 숫자 카드 문제 www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 코드 #include #include using namespace std; int n, m, card[500005], num; int search(int num) { int lt = 0; int rt = n; int mid; while (lt card[mid]) lt = mid + 1; else rt = mid - 1; } return 0; } int main() { ios_..
[C++] BOJ 11399 ATM 문제 www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 코드 #include #include using namespace std; int n, arr[1001], sum = 0; int main() { cin >> n; for (int i = 0; i > arr[i]; sort(arr, arr + n); for (int i = n; i > 0; i--) sum += i * arr[n - i]; cout
[C++] BOJ 16401 과자 나눠주기 문제 www.acmicpc.net/problem/16401 16401번: 과자 나눠주기 첫째 줄에 조카의 수 M (1 ≤ M ≤ 1,000,000), 과자의 수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 과자 N개의 길이 L1, L2, ..., LN이 공백으로 구분되어 주어진다. 과자의 길이는 (1 ≤ L1, L2, ..., LN www.acmicpc.net 코드 #include using namespace std; int cookie[1000001]; int m, n, res; int search(){ int rt = 1000000000; int lt = 1; while (lt > m >> n; for (int i = 1; i > cookie[i]; } cout
[C++] BOJ 1931 회의실 배정 문제 www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 코드 #include #include #include using namespace std; int n, cnt = 0; int main() { cin >> n; vector v; int a, b; for (int i = 0; i > a >> b; v.push_back({ b,a }); } sort(v.begin(), v.end()); int ft = 0; //finish time for (int i = 0; i < n; i++) { if (v[i].second < ft) continue; f..