본문 바로가기

백준3

백준 14852번: 타일 채우기3 ( DP 누적합 문제 => 최적화 필요 ) https://www.acmicpc.net/problem/14852 14852번: 타일 채우기 3첫째 줄에 경우의 수를 1,000,000,007로 나눈 나머지를 출력한다.www.acmicpc.net#include#includeusing namespace std;int d[1000001];int solution(int n){ if(n == 0) return 1; if(n == 1) return 2; if(n == 2) return 7; if(d[n] != 0) return d[n]; int result = 2 * solution(n-1) + 3 * solution(n-2); for(int i = 3; i 위 코드의 시간 복잡도solution(n)을 구할 때 시간       .. 2022. 2. 27.
백준 11726번 ( 2 x N 타일링 ) https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.www.acmicpc.netDP를 이용해 풀어야 하는 문제이다.DP를 사용하기 위한 조건   1. 큰 문제를 작은 문제로 나눌 수 있다.   2. 작은 문제에서 구한 정답은 그것을 포함하는 큰 문제에서도 동일하다.위 조건에 부합하기 때문에 DP를 사용한다.DP는 규칙을 찾아서 점화식을 세우는 것이 가장 중요하기 때문에 우선 규칙을 생각한다.n-1, n-2 까지는 채워진 경우의 수가 구해진 상태라고 가정하자. 그 후 맨 뒤에 길이를 추가하면 될 수 있.. 2022. 2. 21.
백준 1431번 ( 시리얼 번호 ) 문제)다솜이는 기타를 많이 가지고 있다. 그리고 각각의 기타는 모두 다른 시리얼 번호를 가지고 있다. 다솜이는 기타를 빨리 찾아서 빨리 사람들에게 연주해주기 위해서 기타를 시리얼 번호 순서대로 정렬하고자 한다.모든 시리얼 번호는 알파벳 대문자 (A-Z)와 숫자 (0-9)로 이루어져 있다.시리얼번호 A가 시리얼번호 B의 앞에 오는 경우는 다음과 같다.A와 B의 길이가 다르면, 짧은 것이 먼저 온다.만약 서로 길이가 같다면, A의 모든 자리수의 합과 B의 모든 자리수의 합을 비교해서 작은 합을 가지는 것이 먼저온다. (숫자인 것만 더한다)만약 1,2번 둘 조건으로도 비교할 수 없으면, 사전순으로 비교한다. 숫자가 알파벳보다 사전순으로 작다.시리얼이 주어졌을 때, 정렬해서 출력하는 프로그램을 작성하시오.  어.. 2022. 2. 14.