본문 바로가기

분류 전체보기82

[DP] 11055 - 가장 큰 증가 부분 수열 (실버2) with Python https://www.acmicpc.net/problem/11055 11055번: 가장 큰 증가 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수 www.acmicpc.net 주저리 주저리 이 문제도 아래 문제랑 비슷하게 좋다고 생각한다. 2023.02.19 - [알고리즘/dp] - [DP, 이분탐색] 11053 - 가장 긴 증가하는 부분 수열(실버 2) with Python [DP, 이분탐색] 11053 - 가장 긴 증가하는 부분 수열(실버 2) with Python https://www.acmicpc.net.. 2023. 2. 19.
[DP, 이분탐색] 11053 - 가장 긴 증가하는 부분 수열(실버 2) with Python https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net https://www.acmicpc.net/problem/12015 12015번: 가장 긴 증가하는 부분 수열 2 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000,000) www.acmicpc.net 주저리 .. 2023. 2. 19.
[DP] 10844 - 쉬운 계단 수 (실버 1) with Python https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 주저리 주저리 이런 유형의 문제는 제발 꼭 풀어보자. 언젠간 크게 도움이 되는 것 같다. 문제는 짧지만 어렵게 내거나 처음 풀면 많이 당황 스러울 수 있는 문제인 듯 하다. 중요 표시 문제 해결 이런 케이스는 무조건 표를 만들어서 그려야 한다. 길이/ 끝숫자 0 1 2 3 4 5 6 7 8 9 1 x 1 1 1 1 1 1 1 1 1 2 1 1 2 2 2 2 2 2 2 1 3 1 3 3 4 4 4 4 4 3 2 가로가 끝 숫자 세로가 N이라고 해보자 규칙이 보이는가? 자세히 보면 일단 끝 숫자가 0일 때랑 9일 .. 2023. 2. 19.
[DP] 1463 - 1로 만들기 (실버3) with Python https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 주저리 주저리 개인적으로 이런 유형의 문제는 DP를 한다면 한번쯤은 풀어보면 좋을 것 같다는 느낌이 든다. 이런 유형의 문제는 어디서든 간단한 문제로 볼 수 있기 때문이라 생각한다. 문제 해결 위 조건들을 이용해 1을 만드는 최소의 횟수를 구하는 문제이다. 아주 간단하다 각 조건에 맞게 dp를 넣으면 된다 예를들어 2는 2로 나누어 떨어지니 dp[2//2] + 1로서 1이 되니 정답이 된다. 여기서 중요한 것은 dp값을 아주 크게 주는 것이다. (최소 값을 구하는 것이니) 이런식으로 문제에 적용 시키면 된다. .. 2023. 2. 19.
728x90