n = int(input()) k = list(map(int, input().split())) d = [0]*100 # 식량창고 개수 d[0] = k[0] d[1] = max(k[0], k[1]) # (i-1)번째 창고를 털면 i를 털 수 없음 = d(i-1) # (i-2)번째 창고를 털면 i를 털 수 있음 = d(i-2)+k[i] # 둘 중 더 큰 곳을 찾으면 됨 for i in range(2, n): d[i] = max(d[i-1], d[i-2]+k[i]) # print(f'd[{i}] = max({d[i-1]}, {d[i-2]+k[i]})') print(d[n-1])
📖 question https://www.acmicpc.net/problem/4948 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net ✍️ answer def isPrime(x): if x == 1: return False for i in range(2, int(x**0.5)+1): if x % i == 0: return False return True prime_list = [] for i in range(2, 246912): # 마지막 소수 if isPrime(i) is True: prime_lis..
📖 question https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net ✍️ answer n = int(input()) result = 1 count = 0 for i in range(1, n+1): result *= i result = str(result) for j in reversed(result): if j == '0': count += 1 else: break print(count)
📖 question https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net ✍️ answer dwarf = [] for i in range(9): dwarf.append(int(input())) # 한 줄로 가능: dwarf = [int(input()) for _ in range(n)] for i in range(8): # ([0]+[1]) ([0]+[2]) ([0]+[3]) ... ([7]+[8]) for j in range(i+1, 9): if sum(dw..
다이나믹 프로그래밍 메모리를 적절히 사용하여 수행 시간 효율성을 비약적으로 향상시키는 방법 이미 계산된 결과는 메모리에 저장하여 다시 계산하지 않도록 한다. DP의 구현은 탑다운(위에서 아래로), 보텀업(아래서 위로)으로 구성된다. 동적 계획법이라고도 한다. 최적 부분 구조: 큰 문제를 작은 문제로 나눌 수 있으며 작은 문제의 답을 모아 큰 문제를 해결할 수 있다. 중복되는 부분 문제: 동일한 작은 문제를 반복적으로 해결해야 한다. DP 대표문제 (피보나치 수열) 1 1 2 3 5 8 13 21 34 55 ... 이 수열에서 알아낸 항들 사이의 관계식을 점화식이라고 한다. 계산되는 과정을 나타내는 표를 배열이나 리스트로 표현할 수 있다. 점화식으로 표현될 수 있는 구조는 재귀함수를 이용해 프로그램 상에 ..
📄 render_template (html 연결) from flask import Blueprint, render_template views, auth 파일의 import 부분에 render_template를 연결해준다. def home(): return render_template("home.html") 함수의 return 부분에 연결해주면 괄호 안에 html이 연결된 것이다. Bootstrap https://startbootstrap.com/theme/clean-blog에서 미리 만들어진 html 템플릿을 다운받아 적용해보려 한다. html 파일들을 모두 template 폴더에 넣어주고 실행하면 아래 화면이 나온다. 👇 다운받은 html 파일들은 head, nav, footer부분이 반복되는 형태인 ..