백준 11053_가장 긴 증가하는 부분 수열(C++)
https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. www.acmicpc.net [문제 풀이] 다이나믹 프로그래밍을 이용하여 문제를 풀었습니다. 이 문제는 증가하는 부분 수열 중에 가장 긴 부분 수열을 찾는 문제입니다. 부분 수열을 찾기 위해 DP 배열을 선언하여 메모제이션 해주었습니다. 2중 반복문을 돌면서 0번째 인덱스부터 i번째 인덱스까지 반복하면서 자신보다 값이 작은 경우..
백준 14889_스타트와 링크(C++)
https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net [문제 풀이] 완전탐색을 이용하여 문제를 풀었습니다. 스타트 팀과 링크 팀이 가질 수 있는 맴버의 경우 수를 모두 고려하여 check 배열에 메모제이션을 해줍니다. 그 후 반복문을 통해 스타트 팀과 링크 팀의 점수를 비교하여 가장 작은 수를 찾아 주었습니다. [코드] #include using namespace std; int map[21][21]; int check[21] = { 0, }; int N; int res..