2021년 34주차 기록
2021.08.23
08/23 (월) ~ 08/29 (일)
이번주 만난 주제
- 33 Concepts Every JavaScript Developer Should Know : Javascript 에서 33가지 중요한 개념
- 30 seconds of code : 여러가지 스니펫 모음
특정 알고리즘 문제 풀이로 Dynamic Programming 이해 하기
접근 방법 기초 분석
핵심 알고리즘 분석
- 현재 계단(cur_index)부터 마지막 Step 까지 최댓값을 계산해주는 함수
calc_score(cur_index)
가 있다 치자 - 현재 계단에서 다음 계단으로 가는 방법은 2가지다
-
한칸 가기
로 진행한 계단부터 마지막 step 까지의 최댓값 :calc_score(cur_index + 1 )
-
두칸 가기
로 진행한 계단부터 마지막 step 까지의 최댓값 :calc_score(cur_index + 2 )
-
- 그렇다면 아래 식이 성립한다. 현재 계단의 값을
score[cur_index]
라 치면- 현재 계단부터 마지막 계단까지의 최댓값 = 현재 계단 값 + 입력값들중 큰것 ( 한칸가기 최댓값, 두칸가기 최댓값)
1
calc_score(cur_index) = score[cur_index] + max(calc_score(cur_index+1), calc_score(cur_index+2))
경계조건
- 뼈대가 되는 핵심 알고리즘이 완성되었으므로 ..
- 경계조건을 살펴보자
- cur_index = 0 일때, 즉 계단을 밟기전일 때
세부 조건
- 이제, 세부 조건을 입히면 된다
- 한칸 가기 조건 : 한칸 가기가 두번째라면 다음번은 한칸가기로 갈 수 없다
- 두칸 가기 조건 : 마지막 계단 보다 더 많이 갈수는 없다
접근 방법의 이론적 배경
번역해 볼 참고링크
- Dynamic programming : 한국어위키는 영문 위키 내용을 일부 발췌했는데 번역한 내용이 빈약해보임
- Optimal substructure : 한국어 위키 없음
Python 프로젝트에 REPL 넣기
관련 링크
-
How To Debug Python with an Interactive Console, How To Code in Python : 표준 모듈인
code
모듈 설명 -
Building REPLs for Fun and Profit, medium/centrality : 프로젝트에
repl
을 넣는 다양한 방법 소개
Building REPLs for Fun and Profit
기본 라이브러리인 code
모듈로 구현하는 방법 : repl_basic.py
- InteractiveConsole() 의
locals
파라메터로 설정된 변수만 REPL에서 접근가능하다 - .interact() 메소드로 처음과 끝 메시지 출력
IPython 타입의 REPL 사용하기 : repl_ipython.py
- IPython 별도 설치 필요
- 위의
code
모듈과는 달리header
와footer
를 개발자가 따로 print 해줘야 함 -
argv=[]
를 인자를IPython.start_ipython()
에 넘겨 줘야함 !!- 이게 없으면 , 우리 프로젝트와 관계없는 일반적인
ipython command
를 실행가능하게 됨
- 이게 없으면 , 우리 프로젝트와 관계없는 일반적인
IPython과 code 중 가능한 것으로 실행하는 방법 : repl_compat.py
- companion repository 코드 참조
Command-Line 옵션 추가하기
-
click
파이썬 패키지 별도 설치 필요