220209 TIL

Dzeko·2022년 2월 9일
0

개발일지

목록 보기
26/112
post-thumbnail

Today I Learned

1. Dynamic Programming

  • 동적 계획법은
    여러 개의 하위 문제를 풀고 그 결과를 기록하고 이용해 문제를 해결하는 알고리즘
    즉, 재귀함수를 풀어나갈 때 많이 했던 함수의 수식화를 시키면 된다.
    F(string) = F(string[1:n-2]) 라고 수식을 정의했던 것 처럼,
    문제를 쪼개서 정의할 수 있으면 동적 계획법을 쓸 수 있다!
    이처럼 문제를 반복해서 해결해 나가는 모습이 재귀 알고리즘과 닮아있다.
    그러나 다른 점은, 그 결과를 기록하고 이용한다는 점.
    결과를 기록하는 것을 메모이제이션(Memoization) 이라고 하고,
    문제를 쪼갤 수 있는 구조를 겹치는 부분 문제(Overlapping Subproblem)라고 한다
    각 구간마다의 시간을 계산하면 최적의 시간을 구할 수 있는 것을 겹치는 부분 문제,
    이미 실험했던 내용은 기록해두고 쓰면 된다는 것을 메모이제이션 이라고 생각하면 된다
    즉, 겹치는 부분 문제일 경우 동적 계획법을 사용하면 되는데,
    이 때 사용하는 방법이 메모이제이션.

예시로 푼 문제
- BOJ-1932 : https://www.acmicpc.net/problem/1932
- BOJ-14501 : https://www.acmicpc.net/problem/14501


2. 모던 자바스크립트 Deep Dive :

    5장 표현식과 문

값(value) : 값은 식(표현식)이 평가되어 생성된 결과.
리터럴 : 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법
표현식 : 값으로 평가될 수 있는 문(statement). 표현식이 평가되면 새로운 값을 생성하거나 기존값을 참조.
: 프로그램을 구성하는 기본 단위이자 최소 실행 단위.






To Do

  1. 이코테: 구현(2/2)

  2. 完) Codewars - Even or Odd, Returning Strings, Friend or Foe?

  3. 完) BOJ 오늘의 문제 - no.1110

  4. 完) solved class 1 - no.2675, no.2739, no.2741, no.2742, no.2753, no.2884

  5. 完) Programmers level 1 - 42840






Today's Short Report

DP 너무 어렵다.. 문제를 보면 감도 안잡힌다 하.. 내일은 DP 뽀개기 도전
profile
Hound on the Code

0개의 댓글