0️⃣ 문제 링크 프로그래머스 SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프 school.programmers.co.kr ...
[코딩테스트] Java 정리 - 3
코딩테스트에서의 클래스와 메서드에 대해 간단히 정리했습니다. 1️⃣ 클래스와 객체 클래스 정의와 필드/생성자/메서드 // 파일: Main.java (보통 public class Main, public 클래스는 하나만 가능) class Point { // (public 생략 → 같은 파일에서만 사용 가능) i...
[Java] 집합 연산 정리 (합집합/교집합/차집합/부분집합)
집합 연산에 대해 정리했습니다. 1️⃣ 집합 연산 메서드 연산 메서드 방법 시간복잡도 합집합 (Union) addAll() set1.addAll(set2) O(n+m) 교집합 (Interse...
[개발환경] 터미널에서 Alias 단축어 설정 방법
터미널에서 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...