Greedy
개념: 매 순간 최적의 해라고 생각되는 것을 선택해 나아가며, 최종적인 해답에 도달한다! 쉽게 말해 나무만 보고 숲을 보지 못하는 것 조건이 있습니다 앞의 선택이 이후의 선택에 영향을 주지 말 것! 문제에 대한 최적해가 부분문제에 대해서도 최적해일 것! ★삽화 예시 마리오가 leaf 노드까지 가는데 가장 큰 값을 구하려면? ...
개념: 매 순간 최적의 해라고 생각되는 것을 선택해 나아가며, 최종적인 해답에 도달한다! 쉽게 말해 나무만 보고 숲을 보지 못하는 것 조건이 있습니다 앞의 선택이 이후의 선택에 영향을 주지 말 것! 문제에 대한 최적해가 부분문제에 대해서도 최적해일 것! ★삽화 예시 마리오가 leaf 노드까지 가는데 가장 큰 값을 구하려면? ...
🌈문제 링크 풀이 def solution(arr): answer = [] for i in arr: if answer[-1:] == [i]: continue answer.append(i) return answer 만약 answer의 마지막 원소가 현재 순회중인 원소랑 같다...
목차 1. dp(동적 계획법)의 특징 2. 팩토리얼을 통한 재귀함수 표현 3. 피보나치수열의 형태 및 한계 4. dp(동적계획법)을 활용한 한계 극복 1) Memoization (Top-Down, 하향식) 2) Tabulation (Bottom-up, 상향식) 1. dp(동적 계획법)의 특징 큰 문제를 작게 나누고, 같은 문제라면 한...
🌈문제 링크 입출력 예를 보니 number에서 숫자를 k번 만큼 차감하여 제일 큰 수로 반환하네, 물론 자리 배치는 고정 def solution(number, k): storage = [] # Stack for num in number: while k > 0 and storage and storag...
<목차> 1. 개념 2. 예시 3. 구현 1. 개념 Depth First Search (깊이 우선 탐색) 위에서 아래로 찾는 방식 이미 들린 노드는 재방문 안하고, 방문하지 않은 노드만 계속 탐색한다 활용 범위 —> 스택, 큐, 재귀함수 2. 예시 3. 구현 graph 는 ABCDEFGHIJ...
🌈문제 링크 이걸 토대로 문제를 풀려면, 우리가 구해야 할 값인 체육수업에 최대 참여가능 학생 수에 대해 참고해야 할 부분은 case1, case3입니다. 파란 선, 보라색 선이 키 포인트! 풀이 1 def solution(n, lost, reserve): _lost = set(lost)-set(reserve) _re...
🙅♂️휴대폰으로 볼 때 혹시 글자나 숫자가 화면에 다 안나오면, 휴대폰 가로로 돌리시면 됩니다 BFS(Breadth-First Search) 란 너비 우선 탐색 으로 자료를 찾을 때 "수직" 방향으로 자료를 검색하는 DFS와 달리, “수평” 방향으로 자료를 검색한다 자 BFS는 맨 처음시작부터 수평방향으로 탐색을 한다고 했으니 아래 순서와...
🌈문제 링크 코드 def solution(scores): answer = 0 # 원호의 등수 front, back = scores[0] total_score = front + back # 첫번째 점수에 대해서 내림차순, 그래서 -사용, # 첫 번째 점수가 같으면 두 번째 점수에 대해서 오름차순(기본형)으...
🌈문제 링크 코드 1 from math import gcd def solution(arr): answer = arr[0] for i in arr: answer = (i * answer) // gcd(i,answer) return answer 코드 2 from math import gcd #...
🌈문제 링크 둘레 공식 (겉 테두리만 계산) (2*가로) + 2(세로-2) def solution(brown, yellow): answer = [] a,b = 0,3 # a(가로) b(세로) calculator= (brown + 4)//2 while True: # 조건들이 참일동안 계속 반복 ...