PS/BaekJoon Practice(4)
-
알고리즘 공부 : LIS
과학고에서 떨어진 나는 그동안 충격에 휩싸여 열심히 하지 않아 실력이 많이 줄었을거라 생각되니 더 열심히 재활 활동을 꾸준히 해보자. 소개할 알고리즘 : LIS LIS는 Longest Increasing Subsequence, 즉 최장 증가 부분 수열을 말한다. *) 예를 들어 {10,20,10,30,20,50}이라는 배열이 있다고 가정하자. 그렇다면 이 배열에서의 LIS는 {10, 20, 10, 30, 20, 50} => {10, 20, 30, 50} 이러한 상태가 된다. 이 LIS 알고리즘은 우리에게 특정한 배열에서의 LIS를 구해주는 알고리즘이다. 이 알고리즘에는 3가지 방법이 있다. 1. O(n^2) DP 2. O(n log n) Segment Tree 사실상 거의 안씀 3. O(n log n) ..
2020.12.25 -
백준 재활 연습 - 1일차
이번에 KOI에서 잘 못해서 빡친 나는 이번년도에 코포 오렌지 달고 간다는 생각으로 재활훈련을 시작했다. 처음 셋은 조합론 + dp 조합이다. 운으로 올솔하였다. 1. www.acmicpc.net/problem/15989 15989번: 1, 2, 3 더하기 4 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 4가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 합을 이루고 있는 수의 순서만 다른 것은 같은 것으로 친다. 1+1+1+1 2+1+1 (1+1+2, 1+2+1) 2+2 www.acmicpc.net 처음 봤을 때는 만만치 않은 문제처럼 보이나, 순서를 고려해주면 아주 쉽게 풀 수 있는 문제이다. 먼저 우리가 신경써야 할 것은 순서에 의한 중복되는 경우의 수인데, 순서를 어떤 기준..
2020.11.18 -
백준 연습 #2
문제는 3문제였고 자기 전에 1시간 정도 연습을 진행했다. 올솔 ㅎ 1. 한 줄로 서기 (Silver 2) www.acmicpc.net/problem/1138 1138번: 한 줄로 서기 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 � www.acmicpc.net N> n; for(int i=0; i> s[i]; for(int i=0; i
2020.10.02 -
백준 연습 #1
DP 위주로 2시간 동안 연습한 세트이다. 1. 카드 구매하기2 (Silver 1) www.acmicpc.net/problem/16194 16194번: 카드 구매하기 2 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 그냥 쉬운 DP 문제. dp[i]=min(dp[i],dp[j]+su[i-j]); #include #define MEM 1009 #define sanic ios_base::sync_with_stdio(0) using namespace std; typedef long long ll; ll n; ll su[MEM], dp[MEM]; ma..
2020.10.02