2025/07 29

[JAVA] HashMap

HashMap 이란?HashMap은 Map 인터페이스를 구현하고 있는 대표적인 클래스 입니다.Map의 구조인 key-value 쌍으로 구성 되어 있는게 특징입니다. HashMap의 사용 이유- 탐색 속도가 빠르다 (평균 O(1)) - key를 기준으로 데이터를 매우 빠르게 조회할 수 있습니다. - 내부적으로 배열+해시 함수를 사용해 위치를 계산하기 때문에 성능이 뛰어납니다. - 대량의 데이터를 다룰 때, 순차 탐색보다 훨씬 빠릅니다.- Key-Value 구조로 데이터 저장 - 하나의 key에 하나의 value를 매핑합니다. - 중복된 key를 넣으면 이전 value를 덮어쓰기 합니다.- 중복 없는 key 관리 - 같은 key를 두 번 넣으면 마지막 value로 덮어쓰게 되므로 자연스럽게 중복 제..

JAVA 2025.07.16

[JAVA] Hash

Hash란?해시(Hash)는 데이터를 고정된 크기의 고유한 값(숫자)으로 변환하는 함수 또는 그 결과 값을 의미합니다.이때 사용되는 함수는 해시 함수(Hash Function)라고 부릅니다. 해시 함수의 특징Deterministic같은 입력이면 항상 같은 출력Fast계산이 빠르다Uniformity해시값이 고르게 분포되면 성능이 좋다Collision 가능성 존재서로 다른 입력값이 같은 해시값을 가질 수 있음One-way (암호학적 해시)입력값을 추정하기 어렵게 설계됨 (SHA-256 등) 해시의 사용처해시 테이블 구현 (HashMap, HashSet, Hashtable)암호학 (비밀번호 저장 시 해싱: SHA-256, bcrypt)데이터 무결성 검증 (파일 해시: MD5, SHA)캐시 키 생성블록체인 (블..

JAVA 2025.07.16

[JAVA] List vs Set

List : 리스트는 요소들의 순차적인 컬렉션이다. 순서를 가지며 같은 요소가 여러번 들어 갈 수 있다.특징 - 순서 유지 : 리스트에 추가된 요소는 특정한 순서를 유지 한다. - 중복 허용 : 리스트는 동일한 값이나 객체의 중복을 허용 한다. - 인덱스 접근 : 리스트의 각 요소는 인덱스를 통해 접근 가능 하다. Set : 유일한 값의 요소들의 컬렉션이다.특징 - 유일성 : 셋에는 중복된 요소가 존재하지 않는다. - 순서 미보장 : 요소들의 순서를 보장하지 않는다. 즉 입력 순서대로 출력 순서를 보장하지 않는다. - 빠른 검색 : 셋은 요소의 유무를 빠르게 확인할 수 있도록 최적화 되어 있다.

JAVA 2025.07.16

[JAVA] ArrayList 란?

ArrayList란?ArrayList는 배열을 기반으로 한 컬렉션의 하나이며, 데이터를 추가, 삭제시 내부에서 동적으로 배열의 길이를 조절해준다.ArrayList 특징ArrayList는 내부적으로 연속된 주소를 가진 배열을 이용하는 컬렉션연속적인 데이터 리스트이다.ArrayList 클래스는 내부적으로 Object[] 배열을 이용해 요소를 저장한다.배열을 이용하기 때문에 인덱스를 이용해 요소에 빠르게 접근할 수 있다.크기가 고정되어있는 배열과 달리 데이터의 크기에 따라 공간을 늘리거나 줄인다.그러나 배열 공간이 꽉찰 때마다 배열을 복사하는 방식과 사이즈를 늘리며 증가하는데, 이때마다 지연이 된다.데이터를 리스트 중간에 삽입/삭제하는 경우에 중간에 빈 공간이 생기지 않도록 요소들의 위치를 앞뒤로 이동시키기때..

JAVA 2025.07.16

백준 - 17836 공주님을 구해라! 자바

1.Scanner : 436ms import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;public class Main { static int N,M,T,knightX,knightY,min = Integer.MAX_VALUE,mid; //mid (1+2) 1.검을 찾을때까지의 거리 +2.검을 찾고 벽을 허물면서 가는 거리 static int[][] Nary; static boolean[][] visited; static int[][] dist; static int[][] dir = {{1, 0}, {0, 1}, {-1, 0}, {0, -1}}; public static void input() ..

알고리즘 2025.07.15

질문?

1 . 객체지향프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고그 객체들간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍장점:코드 재사용 용이 , 유지보수 쉬움단점: 설계시 많은 시간 , 노력이 필요 추상화 : 공통의 속성이나 기능을 묶어 이름을 붙이는 것캡슐화 : 코드를 재수정 없이 재활용 , 접근 제어자를 통한 정보 은닉상속 : 부모클래스의 속성과 기능을 그대로 이어받아 사용할수있게하고 기능의 일부분을 변경해야할경우 상속받은 자식 클래스에서 해당 기능만 다시 정의할수 있게 함다형성 : 하나의 변수명,함수명 이 상황에따라 다른 의미로 해석되는것오버라이딩 : 상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의해서 사용오버로딩 : 같은 이름의..

카테고리 없음 2025.07.15