일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 코테
- 그리디
- 파이썬 알고리즘 인터뷰
- Workbench
- c언어
- Git
- 4장
- 운체 1주차
- c언어 제어문
- git기초
- c언어 기본
- 최단거리
- 인스타
- 자료구조
- 인텔리제이
- 스택
- 참고X
- python기본
- 5장
- 도커
- DP
- 데베시 1주차
- 백준
- git 오류
- 코딩테스트
- 1주차(1)
- git오류
- python기초
- #코린이 #코딩 #할 수 있다
- python자료형
- Today
- Total
목록분류 전체보기 (103)
하루살이 개발자

#1. 1로 만들기 x = int(input()) # 앞서 계산된 결가를 저장하기 위한 DP 테이블 초기화 d = [0] * 30001 # DP for i in range(2, x+1): # 현재의 수에서 1을 빼는 경우(1을 뺀 자리에 count 1 추가) d[i] = d[i-1] + 1 # 현재의 수가 2로 나눠지는 경우(현재와 나눈 후의 count 중에서 작은 값 가져가기) if i % 2 == 0: d[i] = min(d[i], d[i//2] + 1) # 현재의 수가 3로 나눠지는 경우 if i % 3 == 0: d[i] = min(d[i], d[i//3] + 1) # 현재의 수가 5로 나눠지는 경우 if i % 5 == 0: d[i] = min(d[i], d[i//5] + 1) print(d[x..
1. 다이나믹 프로그래밍(동적 계획법) - 메모리를 적절히 사용하여 수행 시간 효율성을 비약적으로 향상시키는 방법 - 이미 계산된 결과(작은 문제)는 별도의 메모리 영역에 저장하여 다시 계산하지 않도록 한다. - 다이나믹 프로그래밍의 구현은 일반적으로 두 가지 방식(탑다운, 보텀업) * 탑다운(하향식-위에서부터 아래려) 보텀업(상향식-아래에서부터 위로) * 자료구조에서 동적할당이란? 프로그램이 실행되는 도중에 실행에 필요한 메모리를 할당하는 기법을 의미한다. 2. 다이나믹 프로그래밍 사용 문제 1) 최적 부분 구조 - 큰 문제를 작은 문제로 나눌 수 있으며 작은 문제의 답을 모아 큰 문제를 해결할 수 있다. 2) 중복되는 부분 문제 - 동일한 작은 문제를 반복적으로 해결해야 한다. 3. 대표 예제 피보나..