728x90 자바15 그래프(Graph), 그리고 DFS와 BFS - 1. 그래프에 관하여 DFS와 BFS는 탐색 알고리즘의 한 종류이다. 이 알고리즘은 그래프를 알고 있어야 이해할 수 있는 알고리즘이다. 그래서 그래프부터 다루고자 한다. 그래프란 점(정점)과 선(간선)으로 이루어진 자료구조를 의미한다. 별개 아니다. 그냥 숫자(인덱스)가 붙은 점들과 그 점들 간의 관계를 선으로 표시한 것 뿐이다. 단순한 점과 선들의 조합인 그래프를 활용해 마크주커버그가 페이스북을 만들었다. 이 페이스북을 사례로 그래프를 설명할 것이다. 자고로 본인은 페이스북 안한지 100만년된 듯 싶다. 각 점을 사람으로 간주하고 각 선을 팔로우하여 관계를 표시하면 그것이 그래프다. 눈치 챈 사람도 있겠지만 A가 B를 팔로우하였다. B가 A를 맞팔로우하였다와 같이 (간)선들은 일종의 방향성을 가질 수 있다. 이와 같은 방향.. 알고리즘공부(Algorithm Study)/알고리즘이론(AlgorithmTheory) 2022. 2. 22. (JAVA/자바)compareTo와 Comparator 그리고 정렬 자바에서 primitive type(기본형) 중 OO.Compare이 있는 경우를 제외하고 객체 비교를 할 때 compareTo 또는 Comparator를 이용한다. 그중 Comparator의 경우 (특정 객체).sort(), Collections.sort함수 또는 Arrays.sort함수를 쓸 때 파라미터로 정렬기준(내림차순, 오름차순)으로 많이 활용하므로 "무조건" 익숙해지면 좋은 인터페이스이다. 1. Comparator에 관하여 Comparator 인터페이스의 경우 f3을 누르거나 ctrl + 마우스 좌클릭을 할 경우 아래와 같은 내용을 확인할 수 있다. 인터페이스이므로 결국 해당 compare함수를 재정의해서 쓰라는 뜻이다. 반드시 아래와 같이 Override 하여 사용하여야 한다. 안하면 컴파일.. 프로그래밍공부(Programming Study)/자바(JAVA) 2022. 2. 20. (JAVA/자바) 생성자와 초기화 생성자란 객체 생성 과정에서 new라는 키워드를 통해 호출되는 함수이다. 클래스를 작성할 때 멤버변수를 선언하면서 동시에 변수 초기화를 하거나 생성자를 통해 초기화를 해야 한다. 클래스 내부에 명시적인 생성자가 없을 시 컴파일 시에 자동으로 default 생성자를 만들어준다. 하지만 default 생성자를 오버로딩한 다른 생성자가 존재할 경우에는 default 생성자를 자동으로 만들어 주지 않으므로, 오버로딩한 생성자와 함께 default 생성자를 표기해 주어야 한다. 생성자의 첫 번째 줄에서는 this와 super라는 키워드 둘 중 하나만 표기 가능하다. this는 static 영역에 있는 클래스(설계도)를 통해 heap 영역에 객체를 생성할 경우 해당 인스턴스의 주소를 갖고 있으며, 해당 인스턴스의 .. 프로그래밍공부(Programming Study)/자바(JAVA) 2022. 2. 20. 이전 1 2 다음 728x90