본문 바로가기

알고리즘37

[알고리즘] 6. 동적 계획법 KOCW에서 제공하는 고려대학교 유용재 교수 알고리즘 강의를 듣고 정리한 글 입니다.6주차 동적 계획을 이용한 문제 해결 성능 제고 6주차. 동적 계획을 이용한 문제 해결 성능 제고  1. 동적 계획의 이해와 구현1) 동적 계획법이란?복잡한 문제를 보다 단순한 여러 문제로 쪼개어 해결하는 패러다임과거에 계산하였던 결과를 활용한다는 점에서 분할 정복법과 차이가 있음점화식을 세워 문제를 해결하는 형태로 동적 계획을 활용하는 경우가 다수점화식 : 앞의 항과 뒤의 항의 관계를 나타낸 식 2) 동적 계획법을 효과적으로 구현하는 방식(1) Memoization최상위 문제에서 시작하는 Top-down 접근법중간 과정에서의 값을 기록하여 효율성 제고예) 피보나치 수열을 DP로 계산한 경우 f(10) = f(9)+f(8.. 2024. 12. 4.
[알고리즘] 5. 분할정복 KOCW에서 제공하는 고려대학교 유용재 교수 알고리즘 강의를 듣고 정리한 글 입니다.5주차 분할정복의 뜻과 문제 해결에의 적용   5주차. 분할 정복의 뜻과 문제 해결에의 적용 1.  재귀적 접근 원리와 실제1) 재귀란?: 함수의 정의부에서, 함수 자기 자신을 재귀적으로 호출할 수 있음재귀호출은 분할 정복 패러다임 구현을 위한 도구로 활용됨 2) 상향식 / 하향식 접근법문재 해결을 위한 접근법은 상향식(Bottom-up)과 하향식(Top-down)으로 구분 가능재귀 호출은 일반적으로 하향식(Top-down) 접근법에 해당 3) 재귀호출을 이용한 문제 해결 사례피보나치 수열def ex_func(N): if (N == 1) OR (N == 2): return 1 return ex_func(N-1.. 2024. 12. 4.
[프로그래머스] lv.1 개인정보 수집 유효기간 https://school.programmers.co.kr/learn/courses/30/lessons/150370# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 def solution(today, terms, privacies): answer = [] today_int = int(today[0:4])*10000 + int(today[5:7])*100 + int(today[8:10]) terms_dict = {} for term in terms: tmp = term.split() terms_dict[tmp[0]] = int(tmp[1]) for.. 2024. 2. 12.
[프로그래머스] lv2. 순위 검색 https://school.programmers.co.kr/learn/courses/30/lessons/72412 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 import re def remove_etc(str_list): removed_list = [re.sub(r'and ', '', x) for x in str_list] return removed_list def solution(info, query): answer = [] info = (remove_etc(info)) info = [x.split() for x in info] query .. 2024. 2. 12.
[프로그래머스] SUM, MAX, MIN (MySQL, Oracle) 가장 비싼 상품 고르기 (Lv.1) https://school.programmers.co.kr/learn/courses/30/lessons/131697 # MySQL, Oracle SELECT max(PRICE) as MAX_PRICE FROM PRODUCT 최댓값 구하기 (Lv.1) https://school.programmers.co.kr/learn/courses/30/lessons/59415 # MySQL, Oracle SELECT max(DATETIME) as 시간 FROM ANIMAL_INS 최솟값 구하기 (Lv.2) https://school.programmers.co.kr/learn/courses/30/lessons/59038 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭... 2023. 1. 21.