목록BackEnd/Java (6)
행복을 담는 블로그
💡 TreeMap과 TreeSet이란? TreeMap:TreeMap은 키-값 쌍을 저장하는 Map 인터페이스의 구현체로, 키를 기준으로 자동으로 오름차순 정렬됩니다.내부적으로 Red-Black Tree 자료구조를 사용하여 데이터 삽입/삭제/검색을 수행합니다.정렬 기준을 커스터마이즈하려면 Comparator를 지정할 수 있습니다.TreeSet:TreeSet은 고유한 값을 저장하는 Set 인터페이스의 구현체로, 값을 기준으로 자동으로 오름차순 정렬됩니다.내부적으로 TreeMap을 활용하여 데이터의 중복을 방지하고 정렬을 유지합니다.정렬 기준을 커스터마이즈하려면 Comparator를 지정할 수 있습니다.TreeMap 사용법 (Java 예제)import java.util.*;public class TreeMa..

트리 (Tree)비선형 자료구조계층 관계, 상하 관계 표현, 부모자식 관계원소들 간에 1:N 관계를 가지는 자료구조원소들 간에 계층 관계를 가지는 계층형 자료구조상위 원소에서 하위 원소로 내려가면서 확장되는 트리(나무) 모양의 구조 정의: 한 개 이상의 노드로 이루어진 유한 집합이다.사이클이 없는 연결 그래프단순 경로가 하나인 트리 트리의 조건 3가지1. 연결 그래프여야 한다. == 경로가 하나 이상2. 사이클이 없어야 한다. == 경로가 둘 미만 => 두 조건을 만족한다면, 경로는 only 하나만 존재.3. (특징) 노드 수 == 간선 수 + 1노드 : 데이터 하나하나를 이루는 단위루트 (Root) : 노드 중 최상위 노드나머지 노드 : n개의 분리 집합 T1, … , TN으로 분리될 수 있다.부..

💡그래프(Graph)란?: 정점(Vertex)와 간선(Edge)의 집합그래프 특징아이템(사물 또는 추상적 개념)들과 이들 사이의 연결 관계 표현정점들의 집합과 이들을 연결하는 간선들의 집합으로 구성된 자료구조선형 자료구조나 트리로 표현하기 어려운 M:N의 관계를 표현한 것V개의 정점을 가지는 그래프는 최대 V * (V-1) / 2 간선이 가능그래프 종류무향 그래프(Undirected Graph) & 유향 그래프(Directed Graph)가중치 그래프 (Weighted Graph)방향도 있으면서 가중치 그래프순환 그래프 (Cycle Graph)비 순환 방향 그래프 (DAG, Directed Acyclie Graph)1. 무향 그래프(Undirected Graph) & 유향 그래프(Directed Gra..

자료구조를 알고, 알고리즘 문제를 풀 때 시간 복잡도 계산을 한다고 하는데, 시간 복잡도는 무엇이고 어떻게 계산하는지에 대해서 먼저 간단하게 알고 넘어가보도록 하자.https://hyun0zinlog.tistory.com/112 [자료구조] 알고리즘, 시간 복잡도 / 공간 복잡도시간 복잡도 (Time Complexity)?: 프로그램을 실행하는데 실제로 시간이 얼마나 걸리느냐?를 나타내는 척도를 의미한다.시간을 측정하는 2가지 방법실제 소요되는 시간을 측정 : 컴퓨터의 프로그램이hyun0zinlog.tistory.com 그렇다면 ArrayList에서의 시간 복잡도는 어떻게 될까?위 그림과 같이, size가 4인 array에 1,2,3,4 각각을 하나씩 추가할 경우, 마치 O(1)처럼 보인다.하지만, 5라..

백준 문제를 풀다가 어려운 문제가 전혀 아닌데 왜 정답이 아니지 라고 생각하다 데이터 타입 크기의 중요성에 대해서 알게 되었다.문제를 보면 N 과 M을 각각 정수로 값을 입력 받고, 이후에 그 차이를 구하라는 문제였다. 우선 N과 M을 Scanner로 정수를 입력 받는다.Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int M = sc.nextInt();이후 Math.abs() 메서드를 활용하여 절대값을 구해서 그대로 출력만 하면 되는데, 계속 정답이 아니라고 떴다. import java.util.Scanner;public class Main { public static void main(String[] args) { Sca..
백준 / SWEA 알고리즘 문제 풀 때, 입력값 받는 방법프로그래머스로 문제를 풀 때와 다르게, 백준이나 SWEA를 통해 알고리즘 문제를 풀 경우, input 값을 직접 입력하고 받아와서 문제를 풀어야 하는 형태로 이루어져 있다.java를 처음 배우는 입장에서 처음 알고리즘 문제를 풀고자 했을 때 이 부분부터 굉장히 막막해서 진도가 안 나갔다는...Scanner를 먼저 import를 해와한다.Scanner sc = new Scanner(System.in);그 다음 값을 입력 받고 싶을 때, 다음과 같이 Scanner로 부터 변수 형태에 맞게 값을 입력할 수 있다. 1. 정수를 입력 받을 때는 nextInt() 를 사용한다.int N = sc.nextInt(); 2. 문자열 입력next() v.s. n..