CS15 [BOJ/11055/C++] 가장 큰 증가하는 부분 수열 이번에 푼 문제는 dp를 이용해서 푸는 문제였다. 예를 들어 수열 A에서 3번 째에 있는 수가 1번 째, 2번 째에 있는 수보다 크면 3번 째까지 증가하는 부분 수열의 합을 dp 배열에 저장해놓는 방식이다. 그러면 배열 dp에서 오름차순으로 정렬을 했을 때 제일 오른쪽에 있는 수가 최댓값이 될 것이다.#include#includeusing namespace std;int main(void){ int N; cin >> N; int A[1001]; int dp[1001]; for (int i = 0; i > tmp; dp[i] = A[i] = tmp; } for (int i = 0; i 2024. 1. 6. [BOJ/12931/C++] 두 배 더하기 이번에 푼 문제는 "두 배 더하기"이다.문제에서는 배열 A를 배열 B로 만들기 위한 연산의 최소 횟수를 구하라고 하였다. 그래서 당연히 배열 A를 B로 만들기 위한 최소 연산 과정을 고민하였다. 그러나 이렇게 푸는 것보단 배열 B를 배열 A로 만드는 것이 더 효율적이라는 것을 깨달았다.그렇게 된다면 계산 과정은 반대가 될 것이다.배열에 있는 값 하나 1 빼기배열에 있는 모든 값을 2로 나누기그리고 배열에 있는 모든 숫자가 0이 되면 배열 A를 만든 것이기 때문에 성공한 것이다. 문제 로직은 다음과 같다.#include #include using namespace std;int main(void){ int N, tmp; int count = 0; cin >> N; vector B; .. 2024. 1. 3. [C++] 템플릿(Template) 함수 템플릿 int Add(int num1, int num2){ return num1+num2; } 위 함수의 기능과 자료형은 다음과 같다. 함수의 기능 덧셈 대상 자료형 int형 데이터 이러한 함수를 만들어 낼 수 있는 템플릿(모형자)는 다음과 같이 정의한다. template T Add(T num1, T num2){ return num1+num2; } 이를 앞서 정의한 Add함수와 비교해 보면, int형 선언을 T로 대신했음을 알 수 있는데, 이는 자료형을 결정짓지 않은, 그래서 나중에 T를 대신해서 실제 자료형을 결정하겠다는 뜻이다. 함수의 기능 덧셈 대상 자료형 결정되어 있지 않음 위 코드에서 첫 번째 문장은 T라는 이름을 이용해서 아래의 함수를 템플릿으로 정의한다는 의미이다. 그럼 템플릿을 활용한.. 2023. 5. 27. 이전 1 2 다음