본문 바로가기

알고리즘3

[자료구조] Map 살펴보기 Map이란? Map은 기존의 JFC와는 다르게 Key, Value가 존재한다. Key는 중복을 허용하지 않는 ID값이며, Value는 중복을 허용하는 Data 값이다. 또한 기본적으로 Map은 순서를 유지하고 있지 않는다. 가장 대표적인 Map의 예시로는 주민등록번호, ID/PW 이다. Map이라는 인터페이스를 통해 자바에서는 4가지의 Map이 있다. Hash 알고리즘을 이용한 HashMap HashMap의 이전 버전인 HashTable(Vector와 ArrayList 같은 관계) 이진 탐색 트리를 사용하여 키를 오름차순 정렬까지 해주는 TreeMap Map에 순서를 부여해주는 LinkedHashMap 왜 Map을 사용해야하나? Map의 특징은 Key, Value로 나뉘고 순서가 없고 Key는 중복을 허.. 2021. 7. 16.
[자료구조] Set 살펴보기 Set이란? Set은 집합이라는 의미를 가진다. Set은 JFC에 있는 자료구조로 순서가 없고 중복을 허용하지 않는다. 즉, 집합의 개념과 같다고 생각하면 된다.(집합 역시 {1, 9, 6, 4}처럼 중복과 순서가 없다.) Set이라는 인터페이스를 통해 자바에서는 3가지의 Set이 있다. Hash 알고리즘을 이용한 HashSet 이진 탐색 트리를 사용하여 오름차순 정렬까지 해주는 TreeSet Set에 순서를 부여해주는 LinkedHashSet 일반적으로 HashSet, TreeSet, LinkedHashSet 순으로 빠르다. 왜 Set을 사용해야하나? Set의 가장 큰 특징은 바로 순서가 없고 중복을 허용하지 않는다는 것이다. 따라서 비록 위 특징을 List나 다른 자료구조를 통해 커버할 수 있지만 명.. 2021. 7. 16.
Greedy(탐욕법) 알고리즘 알아보기 들어가기전에 평화로운 어느날... 운동을 열심히 하고 온 성빈이는 근무 투입 전 냉동을 폭식하고자 피엑스에 왔습니다. 그러나 사용할 수 있는 전자레인지는 1개 뿐...! 어떻게 하면 최단시간안에 조리시간이 서로 다른 여러개의 냉동을 조리하면서 먹을 수 있을까요? 해당 문제를 해결하기 위해서는 그리디 알고리즘을 사용해야합니다! 그리디 알고리즘이란? 그리디 알고리즘은 모든 수를 다 계산하는 동적계획법을 보완하기 위해 고안된 알고리즘으로, 여러 경우 중 하나를 결정해야할 때 그 순간에 최적이라고 생각하는 것을 선택하는 알고리즘입니다. 즉, 눈 앞에 있는 이익만을 좇는 알고리즘입니다. 마치 아기와 같습니다. ㅎㅎ 왜 그리디 알고리즘인가? 그렇다면 위의 상황에서 왜 그리디 알고리즘을 사용할까요? 앞서 말한 상황은.. 2021. 6. 20.