일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- SSAFY
- 백준
- 완탐
- 코드트리
- 코딩테스트
- JPA
- 다시보기
- BFS
- database
- 그리디
- 그래프
- 유니온파인드
- DP
- 코테
- 알고리즘기본개념
- 트러블슈팅
- Union Find
- 부분수열의합2
- JUnit
- 알고리즘
- 기본유형
- SWEA
- 코딩테스트실력진단
- Spring
- DFS
- Java
- 자바
- 싸피
- 완전탐색
- 다익스트라
- Today
- Total
목록CS-STUDY (48)
HwangHub
보호되어 있는 글입니다.
오늘은 서로 중복된 원소가 없는 '분리 집합 or 서로소 집합(Disjoint Set)'에 대해 알아보고, 이를 이용하여 노드 간의 연결 여부를 판별하는 'Union Find' 알고리즘에 대해 알아보겠습니다. 이 두 가지는 그래프 알고리즘에서 중요하게 다루어지며, 특히 최소신장트리(Minimum Spanning Tree)를 구현하는 크루스칼(Kruskal) 알고리즘과 프림(Prim) 알고리즘에서 활용됩니다. 먼저, Disjoint Set은 각각의 원소가 하나의 집합을 이루며, 교집합이 존재하지 않는 집합을 말합니다. 이를 연결 리스트나 트리를 통해 표현할 수 있지만, 보통 트리 구조를 사용하여 구현합니다. 분리 집합을 표현하기 위해 각 노드가 바라보는 부모 노드를 나타내는 parent[] 배열을 사용합니..
로컬 DB 구축 앞으로 사용할 MySQL DBMS를 처음 설치하는 과정부터 로컬 DB 구축까지 기록해두려 한다. MySQL 삭제 기존에 이미 MySQL이 있는 사람은 아래 경로에 있는 모든 MySQL 관련 파일을 지우는 것으로 시작한다. C:\ProgramData\MySQL C:\Program Files\MySQL C:\Program Files (x86)\MySQL C:\Users\user_name\AppData\Roaming\MySQL 위 데이터 중 Program Data 경로는 기본값이 hidden path라서 uninstaller로는 위 경로의 파일이 지워지지 않는다. 위 경로상에 있는 모든 데이터를 manual delete한 뒤, Control Panel에서 mysql 관련 프로그램들을 모두 지워..
보호되어 있는 글입니다.
메인 출처 : (도서) MySQL로 배우는 데이터베이스 개론과 실습 참고 링크 : medium.com 데이터베이스는 많은 종류가 있지만, 우리는 MySQL을 기준으로 관계형 데이터베이스를 학습하고 있으므로 앞으로 서술되는 많은 내용은 관계형 데이터베이스에 대한 내용입니다. 데이터베이스란 데이터베이스는 조직에서 필요한 정보를 관리하기 위해 논리적으로 연관된 데이터를 구조적으로 통합해 둔 것입니다. 즉, 데이터베이스는 구조화된 데이터 덩어리를 의미하며, MySQL이나 Oracle DB와 같은 것들은 데이터베이스를 관리하는 데이터베이스 "관리 시스템"입니다. Database Management System(DBMS)는 데이터 관리를 아날로그식으로 장부에 적어서 관리하던 시대를 지나, 디지털화되면서 데이터를 잘..
기왕 배운 김에 정리합니다. 코테 빈출 유형은 아니라서, 제 블로그 아무도 안보긴 하겠지만... 혹시나 누군가 본다면 그냥 얘 이런것도 배웠구나 하고 넘어가시면 됩니다. 세그먼트 트리란 세그먼트(Segment)는 '부분'을 의미합니다. 세그먼트 트리는 말 그대로 각 노드에 전체 배열의 부분 정보를 저장시켜두고, 이를 완전 이진 트리로 구성하여 빠르게 해당 값을 탐색할 수 있도록 구현한 자료구조입니다. 각 노드에 담기는 데이터는 대표적으로 "구간합", 그리고 특정 구간에서의 "최대/최소값"이 있습니다. 이 데이터들을 완전 이진 트리로 관리한다는 게 장점인데, 이를 큰 범위의 배열로 관리하기 때문에 메모리를 많이 사용한다는 점을 감안해야 합니다. 공간을 내어주고 시간 활용도를 많이 높이는 전형적인 자료구조입..
우리는 보통 TCP와 견주어 UDP를 많이 학습합니다. UDP의 대표적 특징으로는 아래 항목들이 있습니다. 비연결형 프로토콜이다. TCP와 달리 handshake를 하지 않아 속도'는' 빠르다. 하지만 패킷의 유실 관리나 순서 보장을 하지 않아 신뢰성 있는 통신이 불가능하다. 주로 DNS에 IP 주소 요청할 때, DHCP에 사용된다. 개인적으로는 오늘날에는 인터넷 속도도 빠르다보니 신뢰성 있는 통신의 가치가 더 높다고 생각하여 현대 사회에서 대부분의 통신은 TCP 기반으로 이루어질 것이라 생각하였습니다. 실제로 웹 통신에서는 HTTP 통신이 가장 많이 쓰이는데 이게 기본적으로 TCP 기반으로 알려져 있죠. 근데 다시 네트워크를 공부하다가 신기한 사실을 알아냈습니다. 충격적이게도 모든 HTTP가 TCP로 ..
이번에는 자바를 이용한 완전탐색의 기본인 순열, 조합, 그리고 부분집합을 구현하는 기본 알고리즘에 대하여 알아보겠습니다. 이를 사용하여 기본 완전탐색을 수행할 수 있습니다. 순열 순열은 서로 다른 것 중 순서를 고려하여 나열하는 것입니다. 우리가 알고리즘에서 순열을 사용하는 경우로는, 순서를 고려하여 경우의 수를 완전 탐색할 때 사용합니다. 이는 서로 다른 것 중 선택을 할 때 중복을 허용하냐 안하냐를 먼저 확인해야 하는데, 이는 중복 검사의 유무만 체크하여 구분해주면 되니 지금은 중복이 없는 경우를 기준으로 하나하나 차근차근 코드와 함께 보겠습니다. public class Permutation { static int[] data; static int N; // 총 개수 static int R; // 구..
지난 시간에 OSI 7 Layer나 TCP/IP Stack에 대하여 다뤘다. 자바로 네트워크 이해하기 1 - OSI 7 Layer? ("자바로 네트워크 이해하기"이지만, 아직은 자바 코드가 등장하진 않는다. 통신 과정에서 코드로 설명해 볼 예정이다.) 네트워크가 뭐지요? 네트워크는 유선 또는 무선으로 여러 컴퓨터들을 연 hwanghub.tistory.com 여러 레이어를 거치며 통신이 이루어진다고만 이해해도 일단은 괜찮다 더 중요한 건, 통신의 목적이 되는 "중요 데이터"를 어떻게 주고받는가 이다. 이렇게 통신의 목적이 되는 중요 데이터를 어떤 규약으로 통신하는가를 담당하는 레이어는 Transport Layer이다. 전송 레이어라고도 하며, 여기에는 TCP와 UDP라는 두 개의 프로토콜이 메인을 이루고 ..
순서를 갖지 않는 HashSet과 같은 자료구조를 제외하고, List 계열이나 SortedSet, SortedMap 자식 객체들은 정렬이 가능하다. 또한 custom class를 정의한 것 또한 필요한 조치만 해 주면 정렬이 가능하다. 이를 어떻게 하는지 알아보자. 컬렉션을 정렬하는 인터페이스: Comparator와 Comparable 우리가 int 배열이나 Integer, Double과 같은 numeric 데이터에 대하여는 쉽게 정렬을 해왔다. 심지어 String도 내부적으로 정렬을 위한 구현 코드가 정의되어 있어 별도로 조치하지 않아도 정렬을 해 줬다. 하지만 우리는 종종 (x,y) 형태의 좌표를 custom class로 정의하거나, 유관 데이터를 별도 객체로 묶어서 정의한 뒤에 정렬을 해야 하는 상..