분류 전체보기 123

[다이나믹 프로그래밍] 가장 긴 증가하는 부분 수열

문제 링크 : https://www.acmicpc.net/problem/11053 가장 긴 증가하는 부분 수열 성공시간 제한메모리 제한제출정답맞은 사람정답 비율1 초256 MB205827524517737.517%문제수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오.예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다.입력첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다.둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000)출력첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다.예..

[다이나믹 프로그래밍] 포도주 시식

문제 링크 : https://www.acmicpc.net/problem/2156 포도주 시식시간 제한메모리 제한제출정답맞은 사람정답 비율2 초128 MB247438767633234.043%문제효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규칙이 있다.포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다.연속으로 놓여 있는 3잔을 모두 마실 수는 없다.효주는 될 수 있는 대로 많은 양의 포도주를 맛보기 위해서 어떤 포도주 잔을 선택해야 할지 고민하고 있다. 1부터 n까지의 번호가 붙어 있는 n개의 포도주 잔이 ..

[다이나믹 프로그래밍] 스티커

문제 링크 : https://www.acmicpc.net/problem/9465 스티커 성공한국어 시간 제한메모리 제한제출정답맞은 사람정답 비율1 초128 MB144817167439947.675%문제상근이의 여동생 상냥이는 문방구에서 스티커 2n개를 구매했다. 스티커는 그림 (a)와 같이 2행 n열로 배치되어 있다. 상냥이는 스티커를 이용해 책상을 꾸미려고 한다.상냥이가 구매한 스티커의 품질은 매우 좋지 않다. 스티커 한 장을 떼면, 그 스티커와 변을 공유하는 스티커는 모두 찢어져서 사용할 수 없게 된다. 즉, 뗀 스티커의 왼쪽, 오른쪽, 위, 아래에 있는 스티커는 사용할 수 없게 된다.모든 스티커를 붙일 수 없게된 상냥이는 각 스티커에 점수를 매기고, 점수의 합이 최대가 되게 스티커를 떼어내려고 한다...

[다이나믹 프로그래밍] 오르막 수

문제 링크 : https://www.acmicpc.net/problem/11057 오르막 수 성공시간 제한메모리 제한제출정답맞은 사람정답 비율1 초256 MB102674978394848.240%문제오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이 때, 인접한 수가 같아도 오름차순으로 친다.예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다.수의 길이 N이 주어졌을 때, 오르막 수의 개수를 구하는 프로그램을 작성하시오. 수는 0으로 시작할 수 있다.입력첫째 줄에 N (1 ≤ N ≤ 1,000)이 주어진다.출력첫째 줄에 길이가 N인 오르막 수의 개수를 10,007로 나눈 나머지를 출력한다.예제 입력 1 복사1 예제 출력 1 복사10..

[다이나믹 프로그래밍] 이친수

문제 링크 : https://www.acmicpc.net/problem/2193 이친수 성공시간 제한메모리 제한제출정답맞은 사람정답 비율2 초128 MB263259829736135.569%문제0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다.이친수는 0으로 시작하지 않는다.이친수에서는 1이 두 번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다.예를 들면 1, 10, 100, 101, 1000, 1001 등이 이친수가 된다. 하지만 0010101이나 101101은 각각 1, 2번 규칙에 위배되므로 이친수가 아니다.N(1 ≤ N ≤ 90)이 주어졌을 때, N자리..

[주의][다이나믹 프로그래밍] 쉬운 계단 수

문제 링크 : https://www.acmicpc.net/problem/10844 쉬운 계단 수 성공시간 제한메모리 제한제출정답맞은 사람정답 비율1 초256 MB248477522552028.535%문제45656이란 수를 보자.이 수는 인접한 모든 자리수의 차이가 1이 난다. 이런 수를 계단 수라고 한다.세준이는 수의 길이가 N인 계단 수가 몇 개 있는지 궁금해졌다.N이 주어질 때, 길이가 N인 계단 수가 총 몇 개 있는지 구하는 프로그램을 작성하시오. (0으로 시작하는 수는 없다.)입력첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 100보다 작거나 같은 자연수이다.출력첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다.예제 입력 1 복사1 예제 출력 1 복사9 예제 입력 2 복사..

[다이나믹 프로그래밍] 붕어빵 판매하기

문제 링크 : https://www.acmicpc.net/problem/11052 붕어빵 판매하기 성공시간 제한메모리 제한제출정답맞은 사람정답 비율1 초256 MB125377217536157.813%문제강남역에서 붕어빵 장사를 하고 있는 해빈이는 지금 붕어빵이 N개 남았다.해빈이는 적절히 붕어빵 세트 메뉴를 구성해서 붕어빵을 팔아서 얻을 수 있는 수익을 최대로 만드려고 한다. 붕어빵 세트 메뉴는 붕어빵을 묶어서 파는 것을 의미하고, 세트 메뉴의 가격은 이미 정해져 있다.붕어빵 i개로 이루어진 세트 메뉴의 가격은 Pi 원이다.붕어빵이 4개 남아 있고, 1개 팔 때의 가격이 1, 2개는 5, 3개는 6, 4개는 7인 경우에 해빈이가 얻을 수 있는 최대 수익은 10원이다. 2개, 2개로 붕어빵을 팔면 되기 때..

[다이나믹 프로그래밍] 1, 2, 3 더하기

문제 링크 : https://www.acmicpc.net/problem/9095 1, 2, 3 더하기 성공한국어 시간 제한메모리 제한제출정답맞은 사람정답 비율1 초128 MB1820211794821663.356%문제정수 4를 1, 2, 3의 조합으로 나타내는 방법은 총 7가지가 있다.1+1+1+11+1+21+2+12+1+12+21+33+1정수 n이 주어졌을 때, n을 1,2,3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다.출력각 테스트 케이스마다, n을 1,2,3의 합으로 나타내는 방법의 수를 출력한다.예제 입력 1 복사3 4 7 10 예제 출력..

[주의][다이나믹 프로그래밍] 2×n 타일링 2

문제 링크 : https://www.acmicpc.net/problem/11727 2×n 타일링 2 성공시간 제한메모리 제한제출정답맞은 사람정답 비율1 초256 MB105746218508459.351%문제2×n 직사각형을 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.아래 그림은 2×17 직사각형을 채운 한가지 예이다.입력첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)출력첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 예제 입력 1 복사2 예제 출력 1 복사3 예제 입력 2 복사8 예제 출력 2 복사171 예제 입력 3 복사12 예제 출력 3 복사2731 [ 문제 풀이 ] - D[n] = 2 x n 크기의 직사각형을 채우는 방..

[주의][다이나믹 프로그래밍] 2×n 타일링

문제 링크 : https://www.acmicpc.net/problem/11726 2×n 타일링 성공시간 제한메모리 제한제출정답맞은 사람정답 비율1 초256 MB246309063692634.996%문제2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.입력첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)출력첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다.예제 입력 1 복사2 예제 출력 1 복사2 예제 입력 2 복사9 예제 출력 2 복사55 [ 문제 풀이 ] D[n] = 2 x n 크기의 직사각형을 채우는 방법의 수라고 뒀을 때, - N = 1일 ..