Free Lines Arrow
본문 바로가기
728x90

Algorithm77

[Algorithm] Prim Prime 이란? MST를 만드는 알고리즘 중 하나입니다. Kruskal 과 다른점은 시작점을 기준으로 만들게 됩니다. Prime 알고리즘 S 집합: 현재까지 선택된 노드들 S - A: 선택 되지 않은 노드들 핵심 선택한 노드들과 선택되지 않은 노드들을 연결하는 엣지중 최소를 찾는 것이다. 순서 노드를 선택한다. 선택한 노드들(S) 과 연결된 제일 노드를 선택한다. - 단 가중치가 제일 작은 엣지를 선택한다. 가중치가 최소인 엣지 찾기 O(n) 으로 노드들을 찾을수 있다. 선택되지 않은 노드들에 2개의 값을 추가해준다. key: 현재노드와 선택된 노드들간의 최소 거리 π : 현재노드에 연결된 선택된 노드 그림으로보아야 이해가 빠르다. H 를 기준으로 설명하면 현재까지 선택된 노드들(A,B,C,I) 중 H.. 2021. 9. 14.
[프로그래머스] tuple 문제 분석 문자열에서 먼저 힌트를 찾을수 있었다. 정해진 패턴 대로 들어온다. "{{2},{2,1},{2,1,3},{2,1,3,4}}" 잘 보면 길이 순으로 튜플이 만들어 진다. 다음 두가지 조건을 지키면된다. - {2} {2,3} {2,4,3} - 짧은 길이 숫자를 먼저 집합에 넣는다. - 중복이 안되게 한다. 구현 import java.util.*; class Solution { public int[] solution(String s) { s = s.replace("{",""); s = s.replace("}}",""); System.out.println(s); String []splitArray = s.split("}"); List setIntList = new ArrayList(); Arrays... 2021. 9. 7.
[Algorithm] Quick Sort Quick Sort 퀵소트란 분할 정복을 기반으로 만들어진 정렬방법이다. 1. 문제를 해결한다. 2. 문제들을 작은 문제로 분할한다. 3. 문제를 해결한다. 이렇게 큰문제를 해결하고 다시 작은 문제로 분할해 가면서 해결한다. Pivot 퀵정렬에는 pivot 이라는 개념이 존재한다. pivot은 정렬할때 기준을 잡아준다. Quick Sort 용어 Left: 가장 왼쪽 인덱스(왼쪽) Right: 가장 오른쪽 인덱스(오른쪽) Low: pivot 보다 큰값을 탐색하기 위한 인덱스 High: Pivot 보다 작은 값을 탐색하기 위한 인덱스 Quick Sort 동작과정 Low 를 증가시키면서 Pivot 보다 큰값을 찾는다. High 를 감소시키면서 Pivot 보다 작은 값을 찾는다. 찾은 값을 바꿔준다. 계속 반복.. 2021. 8. 30.
[Algorithm] 탐색문제 재귀로 구현해보기 왜 하는가? 매번 재귀 문제를 풀때 재귀로 구한 답을 전역변수로 처리 할 것인지 아니면 리턴된 값들을 더해서 최종답을 구할 건지 고민이 되기 때문이다. 그래서 두방법다 정리해봅니다. 문제 각각의 사막기지 위치에서 가장 가까운 우물을 찾으려고 한다. 기지는 1 로 되어 있고 우물은 0 으로 표기한다. 기지위치에 가장 가까운 우물의 거리를 표기한다. 예제 Case1 {1, 0, 0} {0, 1, 1} {0, 1, 1} 예제 설명 0,0 에서 가장 가까운 거리는 1 이다 왼쪽이 될수도 있고 아래 가 될수 있다. 2,2 위치 에서는 가장 가까운 우물은 0,2 또는 2,0 이된다. 그렇게 위치를 기록하면 다음과 같다. Case1 의 답 |1|0|0| |0|1|1| |0|1|2| Case2 {0,1,1,0} {1,.. 2021. 8. 16.
728x90
반응형