hashset 4

TreeSet 개념 정리

1. 개념TreeSet은 중복을 허용하지 않으면서 자동으로 정렬을 유지하는 자료구조다.내부적으로 이진 탐색 트리(Red-Black Tree) 기반으로 구현되어 있어서, 데이터를 추가하는 순간 정렬된 위치에 들어간다.TreeSet set = new TreeSet();set.add(5);set.add(1);set.add(3);set.add(1); // 중복 → 무시됨// 내부적으로 [1, 3, 5] 순서로 정렬되어 유지됨2. HashSet과의 비교 HashSetTreeSet중복 제거OO순서보장 안 됨자동 오름차순 정렬추가/삭제/조회 속도O(1)O(log n)내부 구조해시 테이블이진 탐색 트리 TreeSet이 HashSet보다 속도는 살짝 느리지만(O(log n) vs O(1)), 정렬까지 자동으로 해결해준..

Computer Science 2026.06.27

[코테] Hash | 프로그래머스 Lv2. 전화번호 목록 - HashSet으로 접두사 검사

처음엔 방향을 잘못 잡았지만, 핵심 아이디어를 잡고 나니 깔끔하게 풀렸다.이번에 새로 배운 건 "왜 HashSet이 이중 for문보다 빠른가" 였다.1. 문제 분석입출력 파악phone_book = ["119", "97674223", "1195524421"]정답: false→ "119"가 "1195524421"의 앞부분(접두사)이므로 falsephone_book = ["119", "1123"]정답: true→ "119"가 "1123"의 접두사? No→ "1123"이 "119"의 접두사? No→ 어떤 번호도 다른 번호의 접두사가 아님 → true문제 핵심"어떤 번호가 다른 번호의 앞부분(접두사)인지" 를 찾는 문제다.2. 풀이 아이디어처음 접근 (틀린 방법)처음엔 이렇게 생각했다.// 잘못된 접근// Set..

[코테] Hash | 프로그래머스 Lv1. 신고 결과 받기 (+ 복합 자료구조)

저번에는 HashMap과 HashSet의 기본 개념을 익히고 "완주하지 못한 선수"를 풀었다.이번 문제는 그걸 조합해서 써야 하는 문제이다.1. 문제 분석입출력 파악id_list = ["muzi", "frodo", "apeach", "neo"]report = ["muzi frodo", "apeach frodo", "frodo neo", "muzi frodo"] // "muzi frodo" 중복!k = 2정답: [2, 1, 1, 0]흐름을 말로 풀면 이렇다.1. "muzi frodo" 중복 → 1번만 처리2. frodo는 muzi, apeach에게 신고당함 → 2번 = k 이상 → 정지3. neo는 frodo에게 신고당함 → 1번 = k 미만 → 정지 안 됨4. muzi는 frodo, neo 신고 → ..

[TID] HashSet

1. HashSet의 내부 동작 방식과 중복 제거 매커니즘을 설명하고, HashSet이 효율적인 중복 체크를 할 수 있는 이유를 설명해주세요.1) HashSet 내부 동작 방식해시 테이블을 이용하여 데이터를 저장하는 구조Set의 특징을 가지고 있으며 중복된 값 저장 X인덱스가 아닌 키 값을 이용하여 데이터에 저장/접근내부적으로는 HashMap을 사용하는데, 값은 더미 객체로 저장(?)원래 Set은 인덱스가 없지만 찾아가기 위해 내부적으로 인덱스를 생성HashMap은 자체적인 해시 테이블 구조 사용HashMapkey - value 쌍으로 데이터 저장, key 중복 X저장은 느리지만, Hashing이라는 해시 함수를 이용해서 데이터를 저자하며 검색에 유리

728x90