본문 바로가기

Algorithm350

[BOJ]11728번: 배열 합치기 (c++) https://www.acmicpc.net/problem/11728 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거�� www.acmicpc.net 병합 #include #include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); // 입력 int N, M; cin >> N >> M; vector A(N); vector B(M); for (int i = 0; i < N; ++i) { cin .. 2020. 7. 7.
[BOJ]10816번: 숫자 카드 2 (c++) https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 방법 1: 이분탐색 #include #include #include using namespace std; // target과 동일한 값을 가지는 요소 중 가장 첫번째 인덱스 구하기 int lower_bound(vector &cards, int left, int right, int target) { int min_idx = -1; while (left N; vect.. 2020. 7. 7.
[BOJ]10815번: 숫자 카드 (c++) https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 이분탐색 #include #include #include using namespace std; bool binary_search(vector& cards, int left, int right, int target) { // 찾는 값이 없는 경우 if (left > right) { return false; } int mid = (left + right) / 2; int.. 2020. 7. 7.
[BOJ]1790번: 수 이어 쓰기 2 (c++) https://www.acmicpc.net/problem/1790 1790번: 수 이어 쓰기 2 첫째 줄에 N(1 ≤ N ≤ 100,000,000)과, k(1 ≤ k ≤ 1,000,000,000)가 주어진다. N과 k 사이에는 공백이 하나 이상 있다. www.acmicpc.net 이분탐색 #include #include using namespace std; // 1부터 N까지 수를 이어붙인 길이 구하기 long long cal_length(int N) { long long len = 0; for (int start = 1, i = 1; start N) { end = N; } len += (long long)(end - start + 1) * i; } return len; } int binary_searc.. 2020. 7. 7.