매일매일 노력하기 🏃♀️💨
Python + JS
매일매일 노력하기 🏃♀️💨
~ 기존 3주차 JS ~
~ 4주차 JS로 ~
최소신장트리를 구하는 알고리즘
시간복잡도
구현 방법
코드
function find(x, parent){
if (parent[x] == x) return x
parent[x] = find(parent[x],parent)
return parent[x]
}
function union(a, b, parent){
const rootA = find(a,parent);
const rootB = find(b,parent);
if (rootB > rootA) parent[rootB] = rootA
else parent[rootA] = rootB
}
function solution(n, costs) {
var answer = 0;
costs.sort((a,b)=>a[2]-b[2]);
parent = [...new Array(n)].map((_,i)=>i);
for (let i = 0; i<costs.length; i++){
if (find(costs[i][0],parent) !== find(costs[i][1],parent)){
union(costs[i][0],costs[i][1],parent);
answer += costs[i][2]
}
}
return answer;
}
⇒ 그래프 내의 간선이 많은 경우는 프림 알고리즘, 간선이 적은 경우는 크루스칼 알고리즘이 유리~
~ 백준 모음 ~
대표적인 예 ) 정렬 알고리즘 중 퀵 정렬, 합병 정렬, 이진 탐색, 선택 문제, 고속 푸리에 변환(FFT)
이 프로세스는 작게 분할한 문제가 직접 해결 가능할 만큼 충분히 작아질 때까지 재귀적으로 계속됨
Divide (분할)
: 원래 문제가 분할하여 비슷한 유형의 더 작은 하위 문제로 분할이 가능할 때까지 나눈다
Conquer (정복)
: 각 하위 문제를 재귀적으로 해결한다. 하위 문제의 규모가 나눌 수 없는 단위가 되면 탈출 조건을 설정하고 해결한다.
Combine (결합)
: Conquer한 문제들을 통합하여 원래 문제의 답을 얻어 해결한다.
❗️Divide를 제대로 나누면 Conquer과정은 자동으로 쉬워진다. Divide를 잘 설계하는 것이 중요!!
~ JS 문제 (기존 1주차) ~
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.