목록전체 글 (145)
공부 기록장
https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 코드 n = int(input()) st = [0] * 301 # n+1 말고 for i in range(1, n + 1): st[i] = int(input()) dp = [0] * 301 # n+1 말고 (n이 하드 코딩하는 인덱스를 커버하지 않는 작은 수로 들어올 수 있음) dp[1] = st[1] dp[2] = st[1] + st[2] dp[3] = max(st[1] + st[3], st[2] + st[..
https://www.acmicpc.net/problem/2156 2156번: 포도주 시식효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규www.acmicpc.net 코드n = int(input())wine = []# dp[i]는 i번째 포도주를 마실 때의 최대 포도주 양dp = [0] * nfor _ in range(n): wine.append(int(input()))for i in range(n): if i == 0: dp[i] = wine[0] elif i == 1: dp[i] = wine[0] + wine[1] ..
https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 코드 n = int(input()) a = [0] * n for i in range(n): a[i] = list(map(int, input().split())) for i in range(1, n): a[i][0] = min(a[i-1][1], a[i-1][2]) + a[i][0] a[i][1] = min(a[i-1][0], a[i-1][2]) + a[i][1] a[i][2]..
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 코드 n = int(input()) num = list(map(int, input().split())) dp = [1] * n for i in range(1, n): for j in range(i): if num[i] > num[j]: # dp[i]에 저장되는 값 : num[i]를 마지막 값으로 가지는 가장 긴 증가부분..