목록CS/자료구조 알고리즘 (2)
Written by coh at home

결론부터 말하면자바의 HashSet은 Contains()의 시간복잡도가 O(1)이다.hash함수를 적용한 값을 버킷에 담고 있기 때문에 특정 문자열을 찾는 속도가 상수시간만큼 걸리는 것이다. HashTable은 가장 기초적인 자료구조로 Key와 Value의 pair이다. 키값을 해쉬화해서 인덱스로 만든 후 버킷의 인덱스에 자료를 저장하게 된다. HashMap도 똑같이 동작한다. 똑같이 동작한다면 왜 두 개의 컬렉션 라이브러리가 있는 것일까?결론부터 말하면 동기화 여부와 null허용 여부이다. HashTable은 자바 1.0부터 나왔고 HashMap은 자바1.2부터 나왔다.HashTable은 동기화가 설정되어 있고 HashMap은 동기화가 설정되지 않았다. 따라서 속도는 HashMap이 빠르나 멀티스레드..
백준의 1654번 랜선자르기 문제를 해보면 탐색을 해서 적절한 값을 찾아야 한다.이때 완전탐색을 하게되면 시간초과가 뜨게 된다. 그래서 이분탐색을 해야한다.package baekjoon;import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class Lan { private static final List arr = new ArrayList(); public static void main(String[] args) { Scanner sc = new Scanner(System.in); int k = sc.nextInt(); int n = sc.nextInt(); ..