터미널에서 GitBash를 이용하는데 매번 명령어로 폴더 위치 이동하고, 서버 실행하는게 너무너무 불편해서 alias에 대해 찾아보고 정리하게 되었습니다. 1️⃣ alias란? 터미널에서 자주 사용하는 길거나 복잡한 명령어를 짧고 기억하기 쉬운 단어로 대체할 수 있도록 해주는 ‘별명’ 또는 ‘단축어’ 기능입니다. alias를 사용하면 명령어 입...
[Github] 깃허브 리드미 꾸미기
GitHub에 처음 들어갔을 때 보이는 Profile인 Readme를 꾸미기위한 모든 것을 정리했습니다. 리드미 파일에서는 html과 마크다운 문법을 모두 사용할 수 있습니다. 0️⃣ 프로필 Readme용 Repository 생성 깃허브 아이디와 동일한 이름의 레포지토리 만들기 (✨special ✨ repository 생성 가능) Add ...
[Java] String 클래스 메소드 총정리
String 클래스의 메소드에 대해 정리했습니다. 1️⃣ 문자열 길이 및 접근 메소드 설명 예시 int length() 문자열 길이 반환 "hello".length() → 5 char charAt(int inde...
[Java] String / StringBuffer / StringBuilder 차이
String, StringBuffer, StringBuilder의 차이에 대해 정리했습니다. 1️⃣ String 개념 문자열을 불변(Immutable) 객체로 관리 특징 한 번 생성되면 값이 변경되지 않음 불변이므로 +, concat() 등으로 수정 시 새 객체를 생성 속도 느려짐과 메모리 낭비 가능성 있음 문자열 리터럴은 ...
[알고리즘] 플로이드 워셜(Floyd-Warshall)
플로이드 워셜(Floyd-Warshall)에 대해 공부 후 정리하였습니다. 1️⃣ 개념 다이나믹 프로그래밍 기반의 최단 경로 알고리즘으로 그래프 내 모든 정점 쌍 (i, j) 사이의 최단 거리를 구함. 다익스트라가 한 정점에서 출발하는 최단 경로를 구하는 것과 달리, 플로이드-워셜은 전체 쌍을 고려한다. 음수 가중치 간선도 허용(단, 음수 사이클...
[알고리즘] 다익스트라 알고리즘 (Dijkstra)
다익스트라(Dijkstra) 알고리즘에 대해 공부 후 정리하였습니다. 다익스트라 알고리즘 1️⃣ 개념 가중치가 있는 그래프에서 하나의 시작 정점으로부터 다른 모든 정점까지의 최단 거리를 구하는 알고리즘 BFS의 가중치 버전이라고 생각 가능 (BFS는 모든 간선 가중치가 1일 때 다익스트라와 동일) 2️⃣ 특징 Greedy + DP 성격을 ...
[알고리즘] 동적 계획법(DP: Dynamic Programming)
동적 계획법(DP) 알고리즘에 대해 공부 후 정리하였습니다. 동적 계획법(DP: Dynamic Programming) 1️⃣ DP란? 큰 문제를 작은 문제로 나누고, 중복되는 작은 문제를 한 번만 풀어서 그 결과를 저장해두고 재사용하여 전체 문제를 해결하는 기법입니다. 2️⃣ DP의 핵심 조건 (2가지) 중복 부분 문제 (Overlappi...
[Java] 기본 정렬 메소드와 객체 정렬
Arrays.sort, Collections.sort, 커스텀 Comparator, 객체 정렬까지 정렬의 모든 것을 정리했습니다. 1️⃣ 기본 정렬 🔹 1-1. 기본 배열 정렬 (Arrays.sort) 기본형 배열은 Dual-Pivot Quicksort 사용 (평균 O(N log N)) 참조형 배열은 TimSort 사용 (O(N log N)...
[알고리즘] 최소 신장 트리(MST) : 크루스칼 알고리즘, 프림 알고리즘
최소 신장 트리(MST)의 크루스칼(Kruskal) 알고리즘과 프림(Prim) 알고리즘에 대해 공부 후 정리하였습니다. 1. 최소 신장 트리 (MST: Minimum Spanning Tree) 1️⃣ 개념 신장 트리(Spanning Tree) 그래프의 모든 정점을 포함 간선 수 = 정점 수 - 1 사...
[알고리즘] 유니온 파인드 (Union-Find)
유니온 파인드(Union-Find) 알고리즘에 대해 공부 후 정리하였습니다. 유니온 파인드 (Union Find) 1️⃣ 개념 서로소 집합(Disjoint Set) 을 관리하는 자료구조 두 노드가 같은 집합에 속하는지 판별하거나, 두 집합을 합치는 연산을 효율적으로 수행 주로 그래프의 연결 관계 관리에 사용 (예: 크루스칼 MST) 2️⃣ 주요...