본문 바로가기

Programming17

[Python 문제풀이] Dynamic Programming과 대칭성: 새꼼달꼼 장사 핵심 요약 가격표를 작은 수량의 최적해로 나누고 Memoization으로 중복 계산을 제거하는 과정을 기록합니다.1. 핵심 개념과 사용법새꼼달꼼 장사 Memoization - 알고리즘 패러다임 | 코드잇프로그래밍 기초, 웹 개발, 데이터 분석, 인공지능, UI 디자인 등 IT 실무 역량 쌓고 커리어 성장을 이뤄보세요.나의 잘못된 풀이1)def max_profit_memo(price_list, count, cache): # 여기에 코드를 작성하세요 if count in cache: return cache[count] if count여기서 range를 count 전체가 아니라 count // 2 + 1 (절반)까지만 설정한 이유는 대칭성(Symmetry) 때문입니다.예를 들어 .. 2025. 12. 9.
[Reinforcement Learning] Dynamic Programming으로 MDP 풀기 핵심 요약 환경 모델을 아는 MDP에서 Bellman 식으로 정책 반복과 가치 반복을 수행하는 흐름을 정리합니다.1. 핵심 개념과 사용법1. Bellman Optimality Equation환경에 대한 정보(\(P\), \(R\))가 주어졌을 때 MDP문제를 풀기위해서는 dynamic programming을 이용하여 풀이할 수 있다고 했습니다. 최적 상태가치 함수와 최적 행동가치 함수를 아래와 같이 쓸 수 있다고 해봅시다.최적 상태가치 함수 : 상태 s에서 시작했을 때, 앞으로 얻을 수 있는 보상의 기댓값 중 가장 큰 값입니다. 즉, 가능한 모든 정책 중에서 상태 s를 가장 가치있게 만드는 정책을 따랐을 때의 가치입니다.\[V^\*(s) = \max_{\pi} V_{\pi}(s)\]그런데 이 값은 현재.. 2025. 6. 11.
[Python Programming 기초] Index Slicing 핵심 요약 Python sequence의 index와 slicing에서 시작·끝·step 규칙을 정리합니다.1. 핵심 개념과 사용법인덱스 슬라이싱은 Python의 인덱싱과 슬라이싱(index slicing) 은 리스트, 문자열, 튜플 같은 시퀀스 자료형에서 부분을 잘라내거나 선택하는 방법입니다.주로시퀀스[start:end:step]와 같은 형태로 사용됩니다.lst = ['a', 'b', 'c', 'd', 'e']print(lst[1:4]) # ['b', 'c', 'd'] → 1번 인덱스부터 3번 인덱스까지print(lst[:3]) # ['a', 'b', 'c'] → 처음부터 2번 인덱스까지print(lst[2:]) # ['c', 'd', 'e'] → 2번 인덱스부터 끝까지print(.. 2025. 4. 27.
[Algorithm] Dynamic Programming과 Greedy 비교 핵심 요약 Dynamic Programming과 Greedy 비교의 핵심 개념과 예제를 정리하고, 적용 조건과 주의점을 함께 확인합니다.동적계획법(Dynamic Programming)은 지난 포스팅에서 살펴봤습니다.[Algorithm] Dynamic Programming vs. Recursion동적계획법(Dynamic programming)은 재귀구조(Recursion)와 비교해서 살펴봐야하는 방법론인데요, 사실 두 용어가 무 자르듯 딱 상호베타적으로 구분되는 것은 아닌데 좁은 의미로 사용될 때 두 가지가이번에는 동적계획법과 탐욕(Greedy) 알고리즘을 비교해보겠습니다.탐욕(Greedy) Algorithm : 순간순간 마다의 최선의 결정하는 방식으로 최종 해답에 도달하는 문제 해결 방식을 말합니다. 이.. 2025. 2. 20.
[Algorithm] Dynamic Programming과 Recursion 비교 핵심 요약 Dynamic Programming과 Recursion 비교의 핵심 개념과 예제를 정리하고, 적용 조건과 주의점을 함께 확인합니다.1. 핵심 개념과 사용법동적계획법(Dynamic programming)은 재귀구조(Recursion)와 비교해서 살펴봐야하는 방법론인데요, 사실 두 용어가 무 자르듯 딱 상호베타적으로 구분되는 것은 아닌데 좁은 의미로 사용될 때 두 가지가 어떤 차이가 있는지 살펴보겠습니다. 두 방법론 모두 부분문제의 해결책을 전체 문제의 해결책으로 활용한다는 점에서는 공통점이 있습니다. 하지만 재귀는 문제를 푸는 제어 흐름이고, 동적계획법은 중복 부분 문제의 답을 저장해 재사용하는 설계입니다. 동적계획법은 Bottom-up 표 작성과 Top-down 재귀 + Memoization .. 2025. 2. 19.
[Python Programming 기초] Copy의 종류 핵심 요약 Copy의 종류의 핵심 개념과 예제를 정리하고, 적용 조건과 주의점을 함께 확인합니다.1. 핵심 개념과 사용법mutable, immutable 객체에 대해서는 지난 포스팅에서 언급한 바가 있습니다. 만약에 '=' 기호를 이용해서 단순복사(사실 이건 복사라기보다는 참조라고 할 수 있는데)해서 mutable 객체를 참조하는 방식으로 변수선언을 하게되면 의도치않은 에러를 발생시킬 수 있었습니다.[Python Programming 기초] Mutable/Immutable파이썬의 변수 타입은 불변형(immutable) 객체와, 가변형(mutable) 객체가 있습니다. 이 타입에 따라 값의 수정이 허용(mutable)되기도 하고 허용되지 않기(immutable)도 하는데요. immutable 객체의 대표적.. 2025. 2. 5.
반응형

블로그 검색