일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 1967번
- 민겸수
- 1253번
- Linux
- 실습
- OS
- 의미와 무의미의 경계에서
- 셰그먼트트리
- 오손데이터읽기
- C++
- Security
- 데이터베이스 배움터
- FBX
- 5639
- 2단계로킹
- hackerank
- 비재귀셰그먼트
- UnrealMP
- 트랜잭션 관리
- Unreal
- SQL
- 백준 1253번
- 언리얼 커스텀 플러그인
- 언리얼 플러그인
- objtofbx
- UActor
- command not found
- 1759번
- oracle
- 백준
- Today
- Total
목록분류 전체보기 (111)
fatalite
문제 링크 11054번: 가장 긴 바이토닉 부분 수열 첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000) www.acmicpc.net 이 문제를 풀려고 했는데, 2차원 DP 문제일까 생각을 해봤지만, 고민해봐도 비교하는 것과 규칙이 생각나지 않아서 해설을 봤다. 잘 알려진 문제인 것 같다 최장 부분 증가 수열, LIS라고 불리는 문제이다. 근데 이거의 베이스 문제가 이미 풀었던 문제였더라, 아마 해답 보고 다시 생각해보지 않아서 그랬나보다.. 복습을 해야겠다. DP 문제의 핵심은 어떻게 부분 문제로 나눌 것인가가 핵심인 것 같다. 다양한 시도가 필요해보인다. 11053번: 가장 긴 증가하는 부분 수열 수..
문제 문제 난이도 : 실버 1 문제 분류 : 다이나믹 프로그래밍 문제 리뷰 나머지 연산 생각해볼 필요가 있을 듯 하다 문제 소스코드 #include #include #include #include #include #include #include #include using namespace std; long long DP[1001][10]; void Init() { ios_base::sync_with_stdio(false); cin.tie(NULL); std::cout.tie(NULL); } int main() { Init(); int n; cin >> n; for (int i = 0; i < 10; i++) { DP[1][i] = 10 - i; } for (int i = 2; i
문제 분류 문제 난이도 : 실버 1 문제 분류 : 다이나믹 프로그래밍 문제 리뷰 DP[j]를 j 개를 구매하는데에 걸리는 카드의 수로 정의한다.당연하게도, DP[0] = 0첫 번째 루프(i=1)에는 P_1만을 이용한다. DP[j] = P_1 * j가 된다.두 번째 루프(i=2)부터 비교를 해야한다. DP[j] = max(DP[j - 2] + P_2, DP[j]) 초록색 부분은 i = 1일 때의 값이었을 것이다....따라서 DP[j] = max(DP[j - i]+ P_i, DP[j])가 된다. 문제 소스코드 #include #include #include #include #include #include #include #include using namespace std; long Price[10001]; ..
문제 문제 난이도 : 실버 3 문제 분류 : 다이나믹 프로그래밍, 수학(수열) 문제 소스 코드 #include #include #include #include #include #include #include #include using namespace std; long long DP[101]; void Init() { ios_base::sync_with_stdio(false); cin.tie(NULL); std::cout.tie(NULL); } int main() { Init(); int n; cin >> n; DP[0] = 1; DP[1] = 1; DP[2] = 1; DP[3] = 2; DP[4] = 2; DP[5] = 3; DP[6] = 4; DP[7] = 5; DP[8] = 7; DP[9] = 9;..
문제 문제 난이도 : 골드 5 문제 분류 : 다이나믹 프로그래밍 문제 리뷰 DP는 어렵다.,.. 문제 소스 코드 #include #include #include #include #include #include #include #include using namespace std; void Init() { ios_base::sync_with_stdio(false); cin.tie(NULL); std::cout.tie(NULL); } int Coin[101]; int DP[100001]; int main() { Init(); int n, k; cin >> n >> k; for (int i = 0; i > Coin[i]; } for (int i = 0; i < 100001; i++..
문제 문제 난이도 : 골드 4 문제 분류 : 다익스트라 문제 코드 #include #include #include #include #include #include #include #include using namespace std; int Distance[3000]; vector Edges[3000]; const int MYINTMAX{ 2140000000 }; bool Visited[3000]; void Init() { ios_base::sync_with_stdio(false); cin.tie(NULL); std::cout.tie(NULL); } void Dijkstra(int s, int e) { for (int i = 0; i < 3000; i++) { Distance[i] = MYINTMAX; }..
문제 문제 난이도 : 골드 3 문제 분류 : 위상 정렬(Topology Sort) 문제 리뷰 Keyword : 진입 차수, Queue 진입 차수 배열 작성 (Loop) 진입 차수가 0인 것들을 선택하면서(이 과정에서 위상 정렬의 순서는 단일 되지 않게 됨) 출력한다. (Loop) pop된 부분이랑 연결된 노드의 진입 차수를 감소시킨다. 위상 정렬 어려울 줄 알았는데 간단하고 명료하다.. 문제 소스 코드 #include #include #include #include #include #include #include #include using namespace std; vector Edges[32001]; void Init() { ios_base::sync_with_stdio(false); cin.tie(N..
문제 문제 난이도 : 골드 1 문제 분류: 셰그먼트 트리 문제 리뷰 코드 자체는 알고리즘 코딩 테스트 DO IT 편을 참조하였다. 재귀 셰그먼트 참고 해서 구현 했다가, 안되어서 비재귀 셰그먼트 트리로 구현하였는데 이게 더 나은 것 같다는 생각이.. 재귀 셰그먼트 안되었던게 로직이 이상한게 아니었고, "\n"을 안해줘서 틀렸다고 뜬 거였다.. 문제 소스 코드 #include #include #include #include #include #include #include #include using namespace std; int N,M,K; static vector Tree; void Init() { ios_base::sync_with_stdio(false); cin.tie(NULL); std::cout..
문제 문제 난이도: 골드 4 문제 분류: 최소 스패닝 트리 문제 리뷰 최소 스패닝 트리!!! 그리디를 이용한다. 그리디를 이용하기 위해서 유니온 파인드 알고리즘(경로 압축, 랭크 압축을 필요시 추가 구현해야한다. 난 여기서 경로 압축만 쉬워서.. 구현했다)을 사용(트리로 구현, 배열로 구현하는 방법도 있음.)한다. 내일은 프림 알고리즘을 배워보자꾸나 문제 난이도 #include #include #include #include #include #include #include #include #include using namespace std; //Global Variable vector Edges; int RootNode[1001]; int NodeNum, EdgeNum; //Initializing for..
문제 문제 난이도 : 골드 3 문제 분류 : 최소 스패닝 트리(Minimum Spanning Tree) 문제 리뷰 약간의 기하(초등)와 MST가 합쳐진 문제다. double 자료형에 precision을 소수점 두자리까지 출력해야해서 골드 3으로 책정된 듯 하다. 문제 소스코드 #include #include #include #include #include #include #include #include using namespace std; vector Edges; int Root[1001]; int n; void Init() { ios_base::sync_with_stdio(false); cin.tie(NULL); std::cout.tie(NULL); } int Find(int x) { if (Root[..