Peony의 기록 창고 🌼
[Java] 자료형 종류와 표현 범위
JAVA 2022. 9. 18. 23:00

자바의 자료형 자바의 대표적인 자료형에는 다음과 같은 5가지가 있다. 정수형 : byte, short, int, long 실수형 : float, double 문자형 : char 문자열 : String 논리형 : boolen 데이터 저장 단위 비트(bit) 컴퓨터가 나타내는 데이터의 저장 최소 단위. 2진수 하나의 값을 저장할 수 있는 메모리 공간 바이트(byte) 데이터 처리 또는 문자의 최소단위. 8개의 비트가 모여 하나의 바이트 생성(1byte = 8bit) 변수 저장 가능 범위 종류 자료형 크기(byte/bit) 표현 범위 기본 값 논리형 boolen 1byte /8 bit true 또는 false 문자형 char 2byte /16 bit '\u0000' ~ 'uFFFF' (16비트 유니코드 문자 ..

[Java] StringBuilder 사용법과 주요 메소드
JAVA 2022. 8. 25. 16:55

❓String이 있는데 굳이 StringBuilder를 왜 사용해야 할까? 자바에서 문자열을 생각하면 자연스럽게 String이 떠오른다. String str1 = "Hello "; String str2 = "Java"; str1 += str2; System.out.println(str1); //"Hello Java" 이런 식으로 2개의 String객체가 있을 때, str1 + str2와 같은 연산을 하게 되면 새로운 String을 생성하는 것을 알 수 있다. String은 소위 불변(immutable) 객체라고 한다. 즉, String 객체는 한 번 생성되면 변경할 수 없다. 위와 같이 + 연산자를 사용하여 문자열을 연결하면, 연결할 때마다 새로운 문자열 객체가 생성된다는 것을 의미한다. 또한 이전에 있..

[Java] HashSet 정의 & 주요 메서드
JAVA 2022. 8. 11. 23:26

HashSet이란? HashSet은 Set 인터페이스에서 지원하는 구현 클래스이다. 그렇기 때문에 Set의 특징을 그대로 상속받는다. Set은 Key의 중복을 허용하지 않고, 키로 null을 허용하지 않는다. 또한, 순서 없이 Key로만 데이터를 저장한다. 만약, 요소의 저장 순서를 유지해야 한다면 JDK1.4부터 제공하는 LinkedHashSet 클래스를 사용하면 된다. Set의 가장 큰 장점은 중복을 자동으로 제거해준다는 점이다. 만약, 어떤 가게에서 오늘 방문한 손님의 총 숫자를 계산할 경우를 보자. 이럴 경우 오늘 하루 동안 가게를 여러 번 방문한 손님은 한 번으로 체크해주어야 정확한 손님의 숫자가 나올 것이다. 이럴 때 Set을 사용하면 된다. Set은 비선형 구조이기 때문에 순서가 없고, 때문..

article thumbnail
[Java] 다익스트라(Dijkstra) 알고리즘 구현
JAVA 2022. 7. 25. 15:45

다익스트라 개념을 잘 모른다면 아래 포스팅을 읽고 오자. https://myeongju00.tistory.com/52 [Algorithm] Java - 다익스트라(Dijkstra) 알고리즘 다익스트라 알고리즘이란? BFS와 DP를 활용한 최단경로 탐색 알고리즘이다. 즉, 그래프에서 출발점에서 목표점까지의 최단거리를 구할 때 사용하는 알고리즘이다. 이 과정에서 도착 정점 뿐만 아 myeongju00.tistory.com 구현에는 인접 행렬 방식, 우선순위 큐 방식이 있다. 노드의 개수를 V라고 할 때 인접 행렬 방식은 O( V^2 ) 우선순위 큐 방식은 O( V log V ) 의 시간 복잡도를 가진다. 따라서 알고리즘 문제풀이 시 우선순위 큐 방식을 주로 사용한다. 인접 행렬 방식 1..

article thumbnail
[Java] 다익스트라(Dijkstra) 알고리즘
JAVA 2022. 7. 23. 23:44

다익스트라 알고리즘이란? BFS와 DP를 활용한 최단경로 탐색 알고리즘이다. 즉, 그래프에서 출발점에서 목표점까지의 최단거리를 구할 때 사용하는 알고리즘이다. 이 과정에서 도착 정점 뿐만 아니라 모든 다른 정점까지 최단 경로로 방문하며 각 정점까지의 최단 경로를 모두 찾게 된다. 매번 최단 경로의 정점을 선택해 탐색을 반복하는 것이다. ❓왜 다이나믹 프로그래밍일까? 하나의 최단 거리를 구할 때 그 이전까지 구했던 최단 거리 정보를 그대로 사용하기 때문이다. 다익스트라 알고리즘 특징 그래프 내부 하나의 정점(노드, Vertex)에서 다른 모든 정점으로 가는 최단 경로를 알려줌 그래프의 간선(Edge)마다 가중치가 존재할 때 사용 ⇒ BFS를 활용한 최단 경로 구하기와 다른 점 간선의 음의 가중치는 존재하지..

article thumbnail
[Java] 비트(bit)와 비트마스크(bit mask)
JAVA 2022. 4. 8. 01:01

비트 (bit) 비트(binary digit) : 데이터를 나타내는 최소 단위이다. 모든 데이터는 0과 1의 조합으로 구성되는데, 이 0또는 1이 하나의 비트이다. 1개의 비트는 두 가지 상태를 나타낼 수 있으므로, n비트 정수형 변수는 2^0 ~ 2^n-1까지 표현할 수 있다. 비트 연산자 AND 연산 (&) : 대응하는 두 비트가 모두 1일 때 1 반환 OR 연산 (|) : 대응하는 두 비트 중 하나라도 1이라면 1, 아니면 0 반환 XOR 연산 (^) : 대응하는 두 비트가 다르면 1, 같으면 0을 반환 NOT 연산 (~) : 비트의 값을 반전 Shift 연산 () : 왼쪽 또는 오른쪽으로 비트를 이동 쉬프트 연산에서 중요한 점 한가지는 바로 자리수다.int는 32bit 길이를 갖지만 첫 번째 비트..