목록DP (28)
기록방
👉 문제링크 13301번: 타일 장식물 대구 달성공원에 놀러 온 지수는 최근에 새로 만든 타일 장식물을 보게 되었다. 타일 장식물은 정사각형 타일을 붙여 만든 형태였는데, 한 변이 1인 정사각형 타일부터 시작하여 마치 앵무조개 www.acmicpc.net 🔸 문제 분석 🔸 나선 모양으로 커져가는 타일을 n개 배치했을때 만들어진 직사각형의 둘레를 출력한다. 3번째 타일 부터는 피보나치 수열 방식으로 증가한다. 🔸 코드 🔸 n = int(input()) arr = [1, 1] if n == 1: answer = 4 elif n == 2: answer = 6 else: for i in range(n-2): arr.append(sum(arr[-2:])) answer = arr[-1]*2 + sum(arr[-2:..
👉 문제링크 9656번: 돌 게임 2 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 🔸 문제 분석 🔸 n개의 돌이 있을때, ab 두 사람이 턴마다 1개 혹은 3개를 가져갈 수 있고 마지막 돌을 가져가면 패배한다. 두 사람이 완벽하게 게임을 한다고 했을때 상황을 그려보면 다음과 같다. n=1 : a >> b승리 n=2 : a b >> a승리 n=3 : a b a >> b승리 n=4 : a a a b >> a승리 홀수는 b승리, 짝수는 a의 승리라는 것을 알 수 있다. n이 최대 1000이고 시간 복잡도는 O(n)이므로, 제한시간 1초는 널널하다. 🔸 코드 🔸 import java.io.BufferedReader; import java.io.IOExce..
👉 문제링크 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 🔸 문제 분석 🔸 규칙에 따라 계단을 오르며 값의 총합이 최대가 되도록 한다. 규칙1. 계단은 1칸 혹은 2칸(1칸 점프) 씩 오를 수 있다. 규칙2. 연속된 3개의 계단을 연속으로 밟을 수 없다. 규칙3. 마지막 계단은 반드시 밟아야 한다. DP 문제이고 마지막은 꼭 밟아야하기 때문에 거꾸로가는 점화식을 만들어본다. 마지막 계단의 인덱스가 n이면, 밟을 수 있는 종류는 2가지다 1) n과 n-1을 연속으로 밟는다 = n-2를 밟으면안된다 = n-3을 밟는다. ..