본문 바로가기

Java14

[Java] Compare 이것만 알면된다!!!! 음수결과 - 매개변수가 더 크다 0 - 같다 양수결과- 자신(this)이 더 크다 public int compareTo(Object o){ int r = this.score - o.score; // score를 먼저 오름차순 if(r!=0) return r; return this.no - o.no; // no를 다음으로 오름차순 return this.no - o.no; // 오름차순 return -(this.no - o.no); // 내림차순 return Integer.compare(this.no, o.no) // Integer wrapperclass 사용권장(안전) } 2020. 8. 11.
[Algorithm] 서로소집합 & MST(최소신장트리) 서로소 집합(disjoint sets) 하나의 집합을 하나의 트리로 표현 자식 노드가 부모 노드를 가리키며 루트 노드가 대표자가 된다 Find_Set(x) : x를 포함하는 집합을 찾는 연산 집합: 집합의 구분자(ID), 대표자 MST 모든 정점을 연결하는 간선들의 가중치의 합이 최소!!! 두 정점 사이의 최소비용의 경로 찾기 신장트리 n개의 정점으로 이루어진 무향 그래프에서 n개의 정점과 n-1개의 간선으로 이루어진 트리 최소 신장 트리 무향 가중치 그래프에서 신장 트리를 구성하는 가충치의 합이 최소인 신장트리 Kruscal(크루스칼) 1. 최초, 모든 간선을 가중치에 따라 오름차순으로 정렬 2. 가중치가 가장 낮은 간선부터 선택하면서 트리를 증가시킴 - 사이클이 존재하면 다음으로 가중치가 낮은 간선 .. 2020. 8. 11.
[Data Structure] List & Tree 순차 리스트의 문제점 단순 배열로 구현하는 경우, 삽입/삭제 연산과정에서 메모리 배열을 이동시키는 경우 Node 연결 리스트에서 하나의 원소에 필요한 데이터를 갖고 있는 자료단위 Data 1. 원소의 값을 저장하는 자료구조 2. 저장할 원소의 종류나 크기에 따라 구조를 정의하여 사용 Link 1.다음노드의 주소를 저장하는 자료구조 Head 리스트의 처음 노드를 가리키는 레퍼런스 트리 자료구조 비선형 1:n관계 (부모에 여러 자식이 있을 수 있다, ex) 파일시스템) 계층관계 상->하 확장구조 이진트리 모든 노드들이 최대 2개의 서브트리를 갖는 트리 Index를 0부터 시작하면 안된다, 1부터 해야된다 2020. 8. 11.
[Data Structure] Queue Queue Queue는 interface이고, 내부는 전부 비어있다고 생각하면 된다 add 보다는 offer를 쓰는 것이 일반적이다 Queue는 collection을 상속 toArray()를 사용해서 배열로 만들 수 있다 Queue.toArray() 하지만 queue를 쓰는 이유를 생각해보면 굳이 배열로 바꿀 필요가 없다 Tip) 배열의 앞, 뒤로 원소를 넣지 못하는 문제를 deque를 사용하여 해결했다 2020. 8. 11.