본문 바로가기
728x90

전체 글205

[BOJ/백준] 1912 연속합 ● [문제번호 1912] 연속합 https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net ● 알아야 할 것 : 다이나믹 프로그래밍 : vector 자료구조와 메소드 ● 풀이 과정 : 연속된 부호의 부분 배열을 묶어서 이리저리 해보려했으나 점점 복잡해져서 구글링을 했다. : DP의 풀이과정 (Bottom - Up) 1. 테이블 정의하기 → index까지 범위에서 연속된 몇 개의 수를 선택해서 구할 수 있는 가장 큰 합 2. 점화식 찾기 → (index 수) < (i.. 2021. 7. 30.
[BOJ/백준] 14002 가장 긴 증가하는 부분 수열 4 ● [문제번호 14002] 가장 긴 증가하는 부분 수열 4 https://www.acmicpc.net/problem/14002 14002번: 가장 긴 증가하는 부분 수열 4 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net ● 알아야 할 것 : 다이나믹 프로그래밍 : vector 자료구조와 메소드 : Longest Increasing Subsequence ● 풀이 과정 : 기존 [11053 가장 긴 증가하는 부분 수열]의 문제에서 해당 수열을 출력하는 것이다. 그래서 부분 수열.. 2021. 7. 30.
[BOJ/백준] 11053 가장 긴 증가하는 부분 수열 ● [문제번호 11053] 가장 긴 증가하는 부분 수열 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 ● 알아야 할 것 : 다이나믹 프로그래밍 : vector 자료구조와 메소드 : Longest Increasing Subsequence ● 풀이 과정 : 시간복잡도가 O( N^2 ) 인데 더 줄일 수 없는 방법을 고민하다가 일단 채점했는데 통과되었다. : DP의 풀이.. 2021. 7. 30.
[BOJ/백준] 2193 이친수 ● [문제번호 2193] 이친수 https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net ● 알아야 할 것 : 다이나믹 프로그래밍 : vector 자료구조와 메소드 ● 풀이 과정 : 하나씩 Bottom - Up 과정으로 작성해보니 규칙이 보였다. : 맨 앞자리에는 1이 오고 바로 그 다음자리에는 0이 와야만 한다. 그리고 그 다음자리부터는 index - 1 과 index - 2 의 방법의 갯수를 더한 것과 같다 1. 테이블 정의하기 → 각 i.. 2021. 7. 30.
[BOJ/백준] 10844 쉬운 계단 수 ● [문제번호 10844] 쉬운 계단 수 https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net ● 알아야 할 것 : 다이나믹 프로그래밍 ● 풀이 과정 : 풀릴 듯 말 듯한 고민 끝에 구글링을 하였다. 코드를 보고 채점하고 풀이과정까지 작성해서야 완전히 이해했다. : 자릿수가 낮을 수록 높은 자리의 숫자를 의미한다. 예를 들어 자릿수가 5라면 자릿수 1에 있는 3은 34567과 같은 10,000단위의 숫자가 3이라는 뜻이다. 1. 테이블 정의 → 각 자릿수에서 1단위 수가 num인 경우의 계단 수의 총 갯수이다. 2. 점화식 찾기 → dp[digit][num] = .. 2021. 7. 30.
[BOJ/백준] 15990 1, 2, 3 더하기 5 ● [문제번호 15990] 1, 2, 3 더하기 5 https://www.acmicpc.net/problem/15990 15990번: 1, 2, 3 더하기 5 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net ● 알아야 할 것 : 다이나믹 프로그래밍 : vector 자료구조와 메소드 ● 풀이 과정 : DP의 풀이과정 (Bottom-Up) 1. 테이블 정의하기 → end1 : index를 만드는데 마지막으로 추가한 숫자가 1인 경우 → end2 : index를 만드는데 마지막으로 추가한 숫자가 2인 경우 → end3 : index를 만드는데 마지막으로 추가한 숫자가 3인 경우 2. 점화식 찾기 → end.. 2021. 7. 30.
728x90