728x90
반응형

전체 글 225

[백준/DP/C++] 11726번 2xn 타일링

https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 2 x n 크기의 타일을 채우는 문제이고 DP를 이용한다. 그래서 점화식은 dp(n) = dp(n-1) + dp(n-2) #include using namespace std; int n; int arr[1000]; int main(void) { cin >> n; arr[0] = 1; arr[1] =2; for(int i=2; i

알고리즘 2022.12.19

[이코테/DP/C++] 병사 배치하기 (최장 증가 부분 수열 알고리즘, LIS)

최장 증가 부분 수열 알고리즘(Longest Increasing Subsequence, LIS) #include using namespace std; int n; vector arr; int main(void) { cin >> n; for(int i=0; i> x; arr.push_back(x); } // 순서를 뒤집어 '최장 증가 부분 수열' 문제로 변환 reverse(arr.begin(), arr.end()); // DP 테이블 초기화 : arr[i]를 마지막 원소로 가지는 부분수열의 최대 길이 int dp[2000]; for(int i=0; i

알고리즘 2022.12.14

[ 백준/그리디/C++] 11399번 ATM

https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net #include #include using namespace std; int n; int main() { ios::sync_with_stdio(0); cin.tie(0); //속도 가속화 cin >> n; int p[n]; for(int i=0; i> p[i]; // 인출하는데 걸리는 시간 } sort(p, p+n); // 오름차순 정렬 int ans = 0; for(int i =0; i

알고리즘 2022.09.29

[백준/그리디/C++] 10610번 30

https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 30의 배수일 조건 1. 10의 배수여야 한다 2. 3의 배수여야한다 #include #include using namespace std; string s; int main() { ios::sync_with_stdio(0); cin.tie(0); //속도 가속화 cin >> s; sort(s.begin(), s.end(), greater()); //내림차순으로 정렬 if(s[s.length()-1]..

알고리즘 2022.09.22
728x90
반응형