본문 바로가기

알고리즘 문제풀이/백준134

[백준 14921] 용액 합성하기 www.acmicpc.net/problem/14921 14921번: 용액 합성하기 홍익대 화학연구소는 다양한 용액을 보유하고 있다. 각 용액은 -100,000,000부터 100,000,000사이의 특성 값을 갖는데, 같은 양의 두 용액을 혼합하면, 그 특성값은 두 용액의 특성값의 합이 된다. 당 www.acmicpc.net 대표적인 투포인터 문제이다. 입력이 오름차순으로 제시되기 때문에 굳이 정렬을 안해도 된다. 0과 n-1번째 인덱스를 각각 left, right 포인터로 잡고 sum 값에 따라 left++ right--을 해준다. #include #include #include using namespace std; int n, result = INT_MAX; int arr[100000]; int mai.. 2020. 11. 27.
[백준 1822] 차집합 www.acmicpc.net/problem/1822 1822번: 차집합 첫째 줄에는 집합 A의 원소의 개수 n(A)와 집합 B의 원소의 개수 n(B)가 빈 칸을 사이에 두고 주어진다. (1 ≤ n(A), n(B) ≤ 500,000)이 주어진다. 둘째 줄에는 집합 A의 원소가, 셋째 줄에는 집합 B의 원소 www.acmicpc.net 이분탐색을 사용하는 문제 a와 b 둘다 set이므로 집합 내에서 겹치는 숫자는 존재하지 않는다. 1. a의 입력을 받고 2. b의 입력을 이분탐색으로 찾아서 겹치면 배열 인덱스를 표시 + 겹치는 숫자 표시 3. 출력 문제를 제대로 안읽어서 더 틀렸다... a와 b가 전부 겹치면 0만 출력하는 것! #include #include using namespace std; int a.. 2020. 11. 27.
[백준 15486] 퇴사 2 www.acmicpc.net/problem/15486 15486번: 퇴사 2 첫째 줄에 N (1 ≤ N ≤ 1,500,000)이 주어진다. 둘째 줄부터 N개의 줄에 Ti와 Pi가 공백으로 구분되어서 주어지며, 1일부터 N일까지 순서대로 주어진다. (1 ≤ Ti ≤ 50, 1 ≤ Pi ≤ 1,000) www.acmicpc.net dp 사용문제인데 까다롭당.. dp[n]은 n일까지 일했을 때 받을 수 있는 최대 금액이다. n일에 일한건 n일에 못받는다. 최소 n+1일에 받을 수 있음 문제의 핵심은 일을 끝마쳤을 때의 날짜의 금액 dp[arr[i][0] + i ]값을 업데이트 해주는 것이다. 하지만 dp[arr[i][0] + i ] = max(dp[arr[i][0] + i], dp[i] + arr[i][1]).. 2020. 11. 26.
[백준 19947] 투자의 귀재 배주형 www.acmicpc.net/problem/19947 19947번: 투자의 귀재 배주형 2020년에 학교로 복학한 주형이는 월세를 마련하기 위해서 군 적금을 깨고 복리 투자를 하려고 한다. 주형이가 하려는 투자에는 3가지 방법의 투자 방식이 있다. 1년마다 5%의 이율을 얻는 투자 ( www.acmicpc.net 쉬운 dp문제 직관적으로 접근하면 dp를 3row로 접근하면 된다. 어차피 y가 10이라는 작은 숫자이므로 메모리초과는 없다.. 처음 코드: #include #include using namespace std; int dp[3][11]; int main(void) { int h, y; scanf("%d %d", &h, &y); dp[0][0] = dp[1][0] = dp[2][0] = h; fo.. 2020. 11. 26.