MapleStory Finger Point
[URECA] Day21 | 알고리즘 | MST 알고리즘
·
💡 URECA/🗒️ 스터디 노트
MST 알고리즘Kruskal(대표적인 그리디 알고리즘)서로소 집합 서로소 집합 코드public class DisjointSetExample { // 부모 노드를 저장할 배열 static int[] p; // 집합을 초기화하는 메서드 static void makeSet(int V) { // V개의 원소를 가지는 배열을 생성 p = new int[V]; // 각 원소의 부모를 자기 자신으로 초기화 for (int i = 0; i Kruskal 설명 (O(E log V))이전 단계에서 만들어진 신장 트리와는 상관없이 무조건 최소 간선만을 선택하는 방법 방법: 1. 그래프의 간선들을 가중치의 오름차순으로 정렬한다. 2. 정렬된 간선 리스트..
[URECA] Day17 | 알고리즘 | 순두부가 아닌 순(열) 조(합) 부(분집합)
·
💡 URECA/🗒️ 스터디 노트
오늘 내용은 달달 외우기 ⭐   1) 일반순열 (순서 o, 중복 x, O(n!) ) package 순조부;import java.util.Arrays;public class 주사위_일반순열 { static int totalCnt; //완성된 순열의 수 static int n;//주사위 던지는 횟수 static int[]  results;//순열 결과를 저장할 배열 static boolean[] isSelected;//중복을 피하기 위해 첫 판에서 어떤 수를 뽑았는지 마크해 놓을 배열 public static void main(String[] args) { n=2; //2회 results=new int[n]; isSelected=new boolean[7];//0번 index는 쓰지 않고 1~6번 in..
[URECA] Day 16 | 알고리즘
·
💡 URECA/🗒️ 스터디 노트
알고리즘- 문제를 해결하기 위해 수행해야 하는 절차나 방법 APS (Algorithm Problem Solving)알고리즘 문제 풀이 알고리즘의 필요성예를 들어, 1부터 100까지의 합을 구하는 문제를 생각해 보자문제를 푸는 방식에 따라 작업량이나 소요시간 등이 달라질 수 있다 고려 사항1) 정확성 : 얼마나 정확하게 동작하는가2) 작업량 : 얼마나 적은 연산으로 원하는 결과를 얻어내는가3) 메모리 사용량 : 얼마나 적은 메모리를 사용하는가4) 단순성 : 다른 사람이 이해하기 쉬운가5) 최적성 : 더 이상 개선할 여지없이 최적화되었는가 알고리즘을 표현하는 두 가지 방법1) 의사코드 2)순서도시간복잡도 알고리즘의 효율성을 평가하는 지표중 하나실제 수행 시간이나 실행되는 명령문의 개수를 계산 빅오 표기법- ..