본문 바로가기
  • 꾸준히 앞으로

Algorithm2

동적계획법(DP, Dynamic Programming), 쉬운 것 같은데 쉽지 않은.. 동적계획법이란? 그리디 알고리즘과 비교 적용 연습문제 🔗 프로그래머스, 타일 장식물 🔗 프로그래머스, 등굣길 🔗 LeetCode, Coin Change ✨ 🔗 LeetCode, Word Break ✨ ⍞ Reference 동적계획법이란? 전체 문제를 작은 문제로 단순화한 다음 점화식으로 만들어 재귀적인 구조를 활용해서 전체 문제를 해결하는 방식 큰 의미에서 분할 정복과 같은 접근 방식을 의미한다. → 처음 주어진 ① 문제를 더 작은 문제들로 나눈 뒤 ② 각 조각의 답을 계산하고, ③ 이 답들로부터 원래 문제에 대한 답을 계산해 낸다. 동적 계획법과 분할 정복의 차이가 발생하는 부분은 문제를 나누는 방식이다. → 동적 계획법에서 어던 부분 문제는 두 개 이상의 문제를 푸는데 사용될 수 있기 때문에 값을 저.. 2020. 6. 14.
이분 탐색(Binary Search), 어떨 때 적용할까? 이분(이진) 탐색이란? 적용 연습 문제 🔗 프로그래머스, 예산 🔗 프로그래머스, 입국심사 ⍞ Reference 이분(이진) 탐색이란? 찾고자 하는 값을 검색할 때, 범위의 가운데 값을 검사하여 원하는 값이 나올 때까지 반씩 줄여나가며 찾는다. 사전을 찾을 때 그냥 한번 펼쳐서 찾는 단어가 없으면 위치에 따라 앞쪽을 찾거나 뒤쪽을 찾고 이 과정을 찾을 때까지 반복하는 것을 생각하면 된다. 속도 : O(log N) 🤖 O(log N)의 위력이 감이 잘 안 온다면, 4,294,967,296개(약 43억 개)의 원소가 있는 리스트에서 원하는 특정 값을 찾아낼 때 최악의 탐색 깊이(찾는 값이 없는 경우)는 딱 32회이다. 그러나 순차 탐색의 최악의 경우는 4,294,967,296회이다. 저게 0부터 순서대로 숫자.. 2020. 5. 26.